Monthly Archives: May 2013

Is The Go Programming Language Worth Learning?

I heard about a new programming language, “Go”. It is interesting. Allegedly, it combines the performance of C with the nice features of a high-level language.

That is my #1 complaint about higher-level languages, like Javascript, Java, Ruby, and .NET. The performance isn’t there, especially for number-crunching. There are tasks that I know take less than a second in C/C++, and they wind up taking 10x-100x+ longer in higher-level languages.

Consider a high-level feature like bounds-checked arrays. Superficially, that protects you from errors. However, you’re now adding another range-check to each array access, slowing things down tremendously. Very frequently, I don’t need a bounds-checked array, because it’s a loop or I already checked the input validity.

For example, I wrote a “Video Poker Trainer” in Javascript. The program figures out the best play by checking all the cases. In C/C++, solving one hand takes milliseconds. In Javascript, it takes 5+ seconds, for the same algorithm. That is unacceptable. In .NET, I made a DataGridView bound to a DataTable with 10k rows and 50 columns. It took FOREVER (20+ seconds) to loop over the whole DataTable, whereas in C++ such a loop would be instantaneous.

I haven’t investigated Go yet, so I don’t know if it really is as efficient as advertised. I like its support for multithreaded and multicore programs. I like the way it cleaned up the bad language design problems in C++. I like the way it allows you to directly allocate a block of memory (“slice”), in case you need lower-level access.

My question is “Is it worth learning Go?” My definition of “worth learning” is “I will be able to find a job for the next 5-10 years, by having the keyword ‘Go’ on my resume.”

That’s my #1 problem in looking for a software job. Most employers screen resumes by matching keywords. I’m stuck without a job, because all my experience is now considered obsolete. I know that I can learn a new language quickly, and be better than most people quickly, but that skill is worthless on the buzzword-matching job market.

Another problem is that most employers only value WORK EXPERIENCE in that language. If I do a personal project in Go, that may not be enough to help me find a job working in the language.

I’ve been considering writing some Javascript-based games. PHP is a poor back-end choice for a game, especially if some bits are calculation-intensive and the game state is a large amount of data. Should I try Go? My Javascript “Video Poker Trainer” program had lousy performance. Maybe I should move the calculation server-side in Go?

When a new language comes out and becomes popular, there is a brief period of time when you can get a job using that language without prior experience in that language. However, I haven’t yet seen a job ad requesting Go experience.

I already decided against investing in Ruby on Rails, node.js, Android, or iPhone. Rails and node.js are more hype-based than merit based. Android and iPhone both have serious flaws. They might/should be replaced in another generation or two, but that hasn’t happened yet. Android is based on Java, which is a huge mistake. (I’ve heard many people swear that JIT-compiled bytecode is as fast as a natively compiled binary, but that hasn’t been my experience actually using it.) The iPhone’s “walled garden” approach is offensive. Both iPhone and Android are locked-down systems where the user is not given root permission.

Just because a language is good, doesn’t mean it’ll be popular. I never understood why anyone would voluntarily use Ruby on Rails or node.js. Java is inferior to C++, but Java is very popular and nobody uses C++ anymore. Even if Go is a good language, there’s no guarantee it will become popular. However, Google is promoting Go, which is a big advantage.

That is the challenge for everyone who writes software. Every few years, all of your experience is considered obsolete. One solution is to move to management, but the pyramidal nature of corporations means it’s impossible for everyone to do that. My skills for understanding requirements, working with legacy code, testing, and debugging should be transferable. Learning a new language is easier than learning those skills, but most employers say my experience is worth $0.

There are lots of things I could specialize in. I could get more front-end experience. (Most of my experience is back-end.) I have a lot of SQL experience, but I haven’t found a database programmer job. I could work with PHP, Drupal, WordPress, Magento, Java, Android, .NET, or lots of other things. How do I choose where to invest my time? They are popular now, but there’s no guarantee they will still be around in 5 years. For example, I used to see a lot of CakePHP ads, but I haven’t seen any in awhile. If I pick the wrong thing, I’ll have the same problem I do now, where all my experience is considered obsolete.

That is my question. Is Go worth learning? By “worth learning”, I mean “able to find a job in several years if I learn Go and get a job working in Go”, and not the technical merits of the language. Even if Go really is a great language, that’s doesn’t guarantee that people will start using it. I haven’t yet seen a job ad requesting Go experience. Will Go be popular, or will it be another Betamax?

VC And The Illusion Of Selectivity

I saw a VC brag “I only invest in fewer than 1% of the ideas that are pitched to me!” I looked through his portfolio, and most of them made me think “Seriously? You invested in that? What a waste!”

The fallacy is that, even though the VC only invests in 1% of the ideas pitched to him, he may be no better than picking at random.

Suppose that there are more than 100 VCs, each of which randomly invests in 1% of the ideas that are pitched to him. Then, all sorts of stupid ideas will be funded, even though each VC is bragging about how selective he is.

Similarly, many corporations brag “We only hire 1% of the people who submit resumes to us!” If there are more than 100 corporations that do that, they can all brag about how selective they are, even though they’re picking at random (or worse than random). That’s one thing I’m “accomplishing” in my job search. I’m helping other businesses with the illusion of how selective they are.

Just because you only select 1% of the idea or resumes, doesn’t mean you’re brilliant. You may be picking at random, or worse than random.

Negative Interest Rates Destroy Capital

According to “mainstream” economics, low interest rates “stimulate the economy”. That is false. Negative interest rates encourage the destruction of capital. With negative interest rates, a capital-destroying project can be profitable!

Mainstream economics considers the CPI to be an “accurate” measure of inflation. They are wrong. The CPI is biased. The “shadowstats” website calculates the CPI using the old method and comes up with an inflation range of 5%-10%. I use the price of gold, which leads to inflation of 20%-30%+. I also track the price of some things I buy. A half-gallon of apple cider, of similar quality, increased from $3 to $4 over the past year, an inflation rate of 33%. I consider the price of gold, over a several year period, to be the least biased inflation measure. To me, that’s a definition, because gold is money.

Mainstream economists use the CPI instead of more accurate inflation measures. This causes them to not notice negative real interest rates. Currently, the CPI is in the range of 0%-1%, which doesn’t seem bad compared to a Fed Funds Rate of 0%-0.25%.

The Federal Reserve is a fraud. The CPI is a fraud. One fraud requires other frauds, lest people see what’s really happening. The CPI fraud helps cover up the Federal Reserve negative interest rate fraud. If the CPI were more accurately reported, people would get offended by a Fed Funds Rate of 0%-0.25% while real inflation is much higher.

Traders at big banks can borrow at the Fed Funds Rate, giving them a huge advantage over everyone else. The CEO of a large corporations can borrow at a couple percent more than the Fed Funds Rate, say 4%. Everyone else must pay a much higher interest rate, or can’t borrow at all. Negative real interest rates give insiders a huge economic advantage over everyone else.

What do I mean by “negative interest rates”? The real inflation-adjusted interest rate is the nominal interest rate minus the real inflation rate. A clueless economist uses the CPI, 1%, leading to real interest rates of -0.75% to -1% for big banks, but large corporations pay a positive interest rate of around 3%. If you use the shadowstats figure of 10% inflation, then interest rates are -10% for banks and around -6% for large corporations. If you use my inflation statistic of 20%-30%+, real interest rates are negative 20% or less, giving a huge incentive for insiders to borrow and load up on as much leverage as they can, destroying capital in the process.

I’ll give an explicit example. Suppose a CEO is considering a project that will yield a nominal return of 7%. The CEO borrows from a bank at 4% to finance the project, leading to a profit of 3%. The bank borrows at 0-0.25% and lends at 4%, making a profit of 3.75%-4%. Suppose that real inflation is 10%, but the project only has a return of 7%. The CEO actually is destroying capital at a rate of 3%, while he makes a profit of 3%. If you use my inflation figure of 20%-30%, then the CEO is destroying capital at a rate of 10%-20%+ while he makes a profit of 3%.

The real return of the project (7%) is less than true inflation (10%-30%+), which means that the project actually destroyed capital. Negative real interest rates made the capital-destroying transaction profitable. The economy as a whole would be better off if those resources were invested elsewhere. However, the CEO made a nice profit from his capital-destroying transaction.

In the above example, the CEO makes a profit while destroying capital. Large corporations use 10x or greater leverage, so he’s actually destroying capital at a rate of 40%+ while making a profit of 30%+. Negative interest rates gave the CEO and the bank the incentive to finance a capital-destroying project. Negative interest rates gave the CEO the illusion that he’s creating wealth, when he’s actually destroying wealth.

If the CEO made a profit while destroying capital, then who paid for his profits? His profits are paid by everyone else in the form of inflation. When the bank financed the CEO’s bonds, they created new money to buy the bonds. The real economic value of the project was less than the amount of new money created. There are more goods and services due to the new project, but the amount of inflation is even greater than that. It’s the “seen vs unseen” fallacy. People see the new project that had a 7% return, but they don’t see the other projects that don’t get financed due to inflation. Someone else who was saving to buy a house or bootstrap a business lost out due to inflation.

The “housing bubble” is another example of negative interest rates leading to destruction of capital. Mortgage interest rates were 5%/year, but housing prices were going up 10%-20%/year, because that’s closer to true inflation. This false price signal tricked people into leveraging and buying the biggest house they could, or buying multiple investment properties with leverage. During the housing bubble, more houses were built than were actually needed, a tangible destruction of capital. Negative interest rates also lead to bubbles and busts.

Negative interest rates distort the economy. With negative interest rates, it’s more attractive to finance a business with debt instead of reinvested earnings. Large corporations grow with debt and leverage and financial tricks. Small businesses usually grow with reinvested earnings, because they don’t have access to cheap capital like banksters and insiders. Negative interest rates give large corporations a huge economic advantage over small businesses, because large corporations can borrow cheaply and non-insiders can’t.

That’s one answer to the question “Why do large corporations control most of the economy?” With negative real interest rates and access to cheap capital, large corporations can easily buy out smaller competitors. With negative real interest rates, leveraged buyouts are very profitable. One example is Yahoo’s purchase of Tumblr, paid for $1.1B all cash (i.e. debt). Then, the CEO also buys some Congressmen, passing regulations that make it hard for someone to start a new business that competes with his established cartel.

Literally, interest rates are the price of money. The government and the Federal Reserve distort the price of money. With negative real interest rates, capital-destroying transactions are profitable. As long as real interest rates are severely negative, the economy cannot recover, because insiders are “tricked” into making investments that would otherwise be unprofitable.

Who Would Forget To Repair The Roads?

These stories are interesting. In Washington, an oversize truck bumped into a support beam for a bridge over the Skagit river, leading to the bridge collapsing. In Missouri, two freight trains derailed and collided, leading to a bridge collapse.

It isn’t clear if the accidents caused the bridges to collapse, or there already were structural deficiencies due to poor repairs.

A pro-State troll says “Without the State, who would build and repair bridges?” That assumes that people are too stupid to repair bridges, without being forced at gunpoint to do it.

Many bridges are 50+ years old. It’s tempting to cut corners and do less maintenance. Then, where there’s a crisis, a big pork contract can be awarded to rebuild or repair the bridge.

What happens if the State does a lousy job repairing bridges? The people who are injured and inconvenienced by the lost bridges can’t file a claim to collect reimbursement. The State workers have immunity. They aren’t going to lose financially after a bridge collapse. In fact, after a disaster, they can get their budget increased.

There are plenty of ways to handle bridges and roads without the State. It requires a shift in thinking from what you were conditioned to believe. Local roads would be jointly owned and paid for by the residents in the area. Major roads would be toll roads, exactly as is done now. It’s possible to form a limited organization to handle roads, empowered to repair roads but do nothing else.

A pro-State troll says “The State taxation monopoly is required to build and repair roads.” The State has no “market feedback”, to ensure that resources are allocated appropriately. If the State overpays for a bridge, building an unnecessary bridge, that doesn’t matter because the pork project is funded via taxes. If the State is negligent and a bridge collapses or becomes unusable, the workers don’t suffer any negative consequences.

Reader Mail – 05/19/2013 To 05/25/2013

This was a good week. I had one really popular post, "Don't Sign An NDA Before A Programming Job Interview".
Bob commented on About FSK.
Hi,

I stumbled upon your blog from http://captaincapitalism.blogspot.sg/2013/05/when-it-guy-shrugged.html

Your posts on the problems within the IT industry really resonated with me. I'm a Computer Engineering college student with very strong introverted tendencies, so I think I can appreciate what you're talking about psychopathic personality types.

I just wanted to share these two blogs with you:

http://koanicsoul.com/blog

http://vault-co.blogspot.sg/

You can find lots of discussion on the Neanderthal man on those sites. Their hypothesis is that traits like introvertedness, the capability for abstract thinking, and prioritizing truth and justice over social gamesmanship, are inherited from Neanderthal genes. From going through your blog archive, you seem to have these traits.

-Cheers

There are other "manosphere" blogs that are better. I should make a "links" page.


not_PC commented on FSK Glossary.
agorism - Just curious, what jobs can you do out there that others won't pay you paper money for? Granted, you could immediately buy something else with the paper.

There isn't much of a functioning underground economy right now.

You probably have a better chance of doing work and getting paid in bitcoins, than in gold or silver. That's disappointing, because I don't like bitcoin.

You can work off-the-books for paper money and immediately buy something, but what if you want to have some savings? If you try to trade paper for gold/silver, you face high transaction costs and State reporting requirements. If I buy 10 1oz gold coins in a store for cash, and give my ID, you can be sure that the IRS or other State thugs will be investigating.

As long as you use State paper money, you're indirectly supporting State evil, because you get robbed via inflation.


not_PC commented on Republicans Trolling Gold.
"They have kidnapped and tortured people for refusing to pay those taxes and for treating gold and silver as real money. Whenever someone makes it easy to buy and sell gold/silver, that is a threat to the State banking monopoly."

Just curious, but when did you hear about this? I've never heard of this before.

Read about E-Gold.

Bernard Nothaus was convicted.

Read about the story of Franklin Saunders.


not_PC commented on "Save X% When You Buy Y" Fallacy.
lol, so true.

Dystopia Max commented on Mac Mouse No Scroll Wheel.
Get Ubuntu, get Wine or a dual install, embrace the pain of knowing EXACTLY how your computer works at every possible level.

Learning about the differences between filesystems and partition tables is its own reward.


MickeyG commented on IRS Targets Tax-Exempt Conservative Groups For Audits.
I find it very interesting that ANY politician would draw attention to the IRS. Here is one thing most people don't realize. The Ordinance of 1789 (almost indentical to the 1787 ordinance) declares the articles within irrevocable and one of those articles says that the federal taxes collected within a state is to be by the authority and direction of the state legislatures, as in the original states. This of course settles this for the original states and those of the NW territory. And all new states include an equal footing statement within their enabling acts. Does the IRS operate using state authority?

The "official" answer is "The 16th Amendment changed that, giving the Federal government the power to collect income tax as a direct tax."

The correct answer on all taxation issues is "All taxation is theft!" That is more important than arguing legal technicalities.

In that sense, the "IRS Targets Conservatives" outrage is a fnord. People are upset over "IRS power was abused!" instead of "IRS power should not exist! Taxation is theft!" As usual, a couple of replaceable figurehead leaders get changed, and the scam continues.


tim commented on I'm About To Get A New Cell Phone - Samsung Galaxy Stratosphere II or Samsung Galaxy S4?.
s4 for sure.

I realized something better. I can get an S4 plus one of those mobile USB/bluetooth gaming controllers.


You just barely qualified for not getting filtered out as spam.

I can tell that you published this comment on several other blogs, as a Google search shows.

I'm skeptical of someone who's trying to start a software company, but can't afford $300 seed capital.

You pushed your luck too much. You published the exact same comment AGAIN, and now both were deleted as spam. Try it again too much more, and I'm going to get more aggressive at blocking you.


Anonymous Coward commented on Don't Sign An NDA Before A Programming Job Interview.
I've been bitten twice by the programming assignment that was in fact real work.

The first company that pulled this trick on me was a 3 man company in the countryside. I was suspicious because the assignment seemed like real work. Anyway I did it one afternoon at home and emailed it to them. I eventually went to face-to-face interviews and spent the whole day at the company. The company consisted of one Visual Basic programmer, one recent graduate and the boss. The solution I wrote was in C/C++. The Visual Basic programmer told me they were moving to C/C++ as Visual Basic didn't cut it. He also said I was the only person to submit a correct solution and *they were going to use my code in their software product*.

Anyway a month went by and I didn't hear from them. Late one evening I got a phone call from the boss and he told me they were having a problem and could I visit and solve it for them. He said he would pay my train fare. I told him I couldn't really do any more free work for them. The next day I got a snotty rejection email.

So even though I was the only one that submitted the correct solution I still didn't get the job.

Anonymous Coward commented on Don't Sign An NDA Before A Programming Job Interview.

About 5 years ago I got talking to a manager I met on the joelonsoftware forum. I told him none of his jobs was suitable for me, but I really liked his stated company's attitude to software development. That was it. I did email any further and he didn't email me.

For some strange reason he remembered me and out-of-the-blue, 5 years later he emailed me and recommended I apply for a job at his company. Well I was quite flattered he remembered me. So I looked up the job. It has a pre-interview assignment. Again it looked like real work. I had been bitten before, but I thought that I shouldn't become all paranoid just because it happened once before.

Anyway the work was writing a parser. I've written quite a few parsers in my time. It took me a good few hours. I understand that a fair amount of programmers probably wouldn't be able to do this work. I tested my code thoroughly and it worked fine. I was quite pleased with it. It was an efficient piece of code.

I emailed my solution in one evening. First thing in the morning I got a rejection email. As the job had only just been posted, I suspect I would have been the only applicant at that time.

I emailed the manager and expressed surprise. I asked him to give details how my solution wasn't good enough. I got no specifics from him at all.

I strongly suspect it was just a scam to get some free code, he was too dumb to write himself.

This is nasty stuff, because if enough people try this trick it will discourage people applying for real jobs. Shame on this scumbag.

I have another offensive story. I went on one interview, and the guy spoke to me for just a few minutes. All he did was ask my salary expectations, and that he wanted me to come back another day for a programming test. I was offended, because he could have accomplished that with a phone screen, rather than making me commute 2 hours for a 5 minute interview. On the other hand, I've got nothing else to do, and might as well waste time on it.

Matthew Walker commented on Don't Sign An NDA Before A Programming Job Interview.

If a programming assignment is too simple, then it isn't a real test.

Not in my experience. A fair number of literal non-programmers do get through the screening process to an on-site interview. I have seen it, not infrequently. So you give them what Jeff Atwood called a "fizzbuzz" test: Just prove you're a vertebrate, and we'll continue the interview.

But if somebody wants you to write non-trivial, commercial-quality code for the interview, yeah... no. That's crazy. A half an hour worth of coding, tops. Not a lot of guys can do enough to be worth stealing in half an hour.

I've had guys ask me to code stuff on the whiteboard and talk them through why I did what I did. That's cool. You want to know how somebody thinks about coding.

I certainly don't mind fizzbuzz-type screening questions. Those are reasonable. If someone asked me fizzbuzz and another similar question as a written pre-screen, I'd do it.

What I hate are questions that test obscure language trivia. For example, questions regarding dynamic_cast in C++. I've never seen dynamic_cast used in production C++ code.

I also hate design pattern questions, because they never accept my answer "I don't like design patterns. They are too general to be useful. If you use too many design patterns, your code starts to become a mess of extra classes and extra methods."

Here was one interview project. "Write a trading system in VB/Excel that connects to Interactive Brokers. Write a VB/Excel script that executes VWAP trades." Seriously? I offered to do it as a 1 week consulting project, and he declined. That guy was flagrantly looking for free consulting. I also can tell, due to the way he got angry when I refused.

What happened to the technical interview? I've been on 50+ interviews in the past 6 months while looking, and there's been almost no serious technical interviews. Most interviews don't get more sophisticated than "Do you have 3-5 years of experience in X? No? Why are you wasting my time?"

Anonymous Coward commented on Don't Sign An NDA Before A Programming Job Interview.

> A half an hour worth of coding, tops. N

Several years ago I applied for a job at Microsoft, UK.

There were 3 coding questions to be submitted pre-interview and one whiteboard coding question.

At the time I was running a software business and taking a part-time university course. So from time to time I would be asked to add enhancements to my software. I also had about 5 - 6 assignments per year for my university course. I was reasonably busy and had the belief interviews shouldn't consume too much of your time.

The interview was in a different city to where I live. I had to wake up around 5 am to get to the interview on time.

I interviewed with the whole team. Something like 6 - 7 different interviews. Each interviewer asked 2 whiteboard coding questions. I was even questioned through lunch!

I was thinking it was getting to be a bit much.

Anyway at the end of the day I was asked to write practically a mini computer program on the whiteboard. It simply would not have fitted. There was no effort to reduce the size of the task down. Then the manager started bashing loudly on his keyword. I realized that the guy was taking the piss. My mind stopping working. I didn't answer his question at all. I was getting tired and he was obviously bashing loudly on his keys to distract me.

Two weeks later I got a phone call from their HR woman. She asked me if I wanted interview feedback. I said I didn't. Eventually she convinced me and I accepted.

I was surprised at some of the negative comments. In fact I was surprised that some of the interviewers were picking on everything but my coding ability. One interviewer (a QA guy) even bothered to comment I delayed for 30 seconds before answering one question! I was offended that I interviewed at the largest software company in the world and they couldn't care less about my programming ability. Eventually I complained. Then the HR woman said the manager said I was so stupid I didn't realize I got his question wrong. I wasn't stupid, I was tired and I didn't bother to answer his question at all.

Wow! This post generated a traffic spike! Most of the comments are about programming interview tests, and not the original subject, "Only people with stupid ideas demand you sign an NDA before interviewing for a job with their startup."

I left this comment on Captian Capitalism's blog. (He promoted my post!)

===

Well, for really simple tests like fizzbuzz, I always agree to do it.

No, I've never been responsible for hiring. With my ability to evaluate intelligence and personality type, I should be great at it, but I've never had the opportunity.

What I hate are programming assignments. I do it, I know I did well, and then I don't get an interview.

I also hate the multiple choice screening tests. They always test obscure language trivia that I don't use, and they have mistakes or really obscure loopholes that makes me question the intelligence of the author. (Seriously, this question expects me to know that really obscure thing? If you know that really obscure thing, the correct answer is d; otherwise c. What do I choose?) Brainbench is the most annoying, but there are others.

Once, I went on an interview, and after the interview he gave me an assignment and implied that I'd get an offer if I passed. It took a few hours, I did it, I know it worked, but no offer.

I have the opposite problem as the hiring manager who complains interviewees can't pass fizzbuzz. I know I'm one of the top 1% performers, but my resume gets drowned out by all the chaff. For 95%+ of resume submissions, I don't make it past the keyword screening phase.

I don't have any connections or "networking" (another thing Captain Capitalism hates), so I'm SOL.

Most of my experience is in C/C++, which nobody uses anymore. I get zero credit for that experience when applying for jobs in PHP, Java, .NET, or other things. They aren't that much different. You still have to understand the requirements and understand the legacy code, and that skill is transferable, but nobody considers me. So, even though I'm one of the top 1% performers, I'm an unemployable loser.

There's also something that nobody ever explicitly states. No matter how much he claims to want the best, a hiring manager ALMOST NEVER wants to hire someone more skilled than him, because he's insecure about his own job. Paradoxically, being on the top end of the experience and ability scale makes me unemployable.

I'm never even asked fizzbuzz or sincere technical questions on an interview! It's all resume keyword matching! I haven't gone on a single interview where the interviewer was genuinely evaluating my technical ability! That wasn't the case 5-10 years ago when I started.

BTW, hooray for Captain Capitalism! He sent me over 150 visits today to that post! Just in case you wanted to know how much power you have to promote a link. According to piwik, I got 5x my normal traffic today.

I'm doing my part to promote the decline! Instead of being gainfully employed generating wealth that criminals can steal, I'm going on the occasional interview, browsing the Internet, and working on some personal projects.

The thing that offends me is that I can't find *ANY* job. I'd take something entry-level just to get back in the workforce and get more experience. I can't even get that.

Maybe I should get a job as a security guard? I could work on my blog, write a book, or work on my own projects in the idle time.

====

not_PC commented on Don't Sign An NDA Before A Programming Job Interview.

lol, I agree.

I had a phone interview and the guy -- in a very thick Indian accent, which made it difficult to understand what he was saying -- asked me how the C# memory management worked. He then asked me to dictate SQL code to him... over the phone...

I don't miss having missed that "boat".

Another amusing story, another Indian interviewer:

Indian: How much SQL experience do you have?

FSK: I have 10 years of experience, about half of it working with SQL.

Indian: Sorry, I'm looking for someone who's only worked on SQL and nothing else.

[end of interview]

Another interesting bit from Captian Capitalism's blog:

A question comes to my mind regarding IT guys vs HR and other hiring practices:

Why isn't there more IT guys that start their own business instead of trying to get a job or a gig ?

It isn't easy as it sounds. If you're targeting individual customers, you need a *LOT* of customers before it becomes viable as a solo business.

If you want to raise capital, VC is another headache. Great programmers don't have the personality type the VCs are looking for (and if they did, they wouldn't be great programmers). If you partner with someone non-technical, more likely than not, you wind up partnering with a Steve Jobs-type psychopath who winds up controlling the business. (Zuckerberg is hailed in the mainstream media as a genius. His biggest accomplishment was cheating all his early partners, especially Eduardo Saverin.)

If you target corporate customers, you're SOL unless you have contacts.

If you're a consultant, you're just a higher-paid hourly employee.

Even if I do successfully bootstrap a business, part of the taxes I pay subsidize banksters. Then, the banksters will prefer a good Ponzi like Twitter or LinkedIn or Facebook, rather than a fundamentally sound business.

If I want to save up my salary and use that as seed capital, high taxes make that hard.

The State severely restricts the economy, making it very hard for talented workers to start or bootstrap a business.

High taxes and a corrupt monetary system are one of the big reasons talented workers can't easily start businesses. Software isn't heavily regulated, but frivolous lawsuits from software patent trolls are a big problem.

PRCD commented on Don't Sign An NDA Before A Programming Job Interview.

In an interview, you are interviewing them as much as they you. Just walk away from any interview that doesn't treat you like a human and demands too much prep work. Politely conclude any interview where someone on your team or in mgmt appears to be incompetent, rude, evil, or devious.

The key is to weed-out places of employment that you'll just have to leave after a short time due to horrible work climate/horrible people/horrible mgmt.

Anonymous Coward commented on Don't Sign An NDA Before A Programming Job Interview.

I had one and half days of interviews at Microsoft in Denmark.

For the second day I actually did well. During my interview with the manager, I got every question he asked me correct. At the end of the interview he asked one question. After some working out I gave the answer. He then repeated my answer in different words and said he had to rush to the next interview.

I then had two more interviews. The last one involved a difficult problem and I had to write a large amount of software on the whiteboard. I could tell the manager didn't understand what I was writing. He then trotted out the answer in a French accent, which actually didn't match his question. I guess he wasn't that technical and/or wasn't fluent in spoken English. Anyway I had to write a massive amount of difficult code for the precise question he phrased me.

It was all wasted. My last two interviews were pointless and I was told I had got the last question incorrect in my third from last interview. That is untrue. I said the correct answer and all the manager did was re-phrase it.

As this interview was in a foreign country and involved traveling, it was a waste (in total) of about 4 days of my life. I was angry at the time that the picked on one wrong answer, which is fact was correct. This is seriously not nice.

It's hard to filter out incompetent employers when almost every employer is incompetent and the job market is lousy.

There are a couple of interviews where there were big red flags during the interview, I decided to ignore it and give them a chance anyway, and now I have a few short-term jobs on my resume. On the other hand, for one interview, the interview was lousy, but I got an offer and I wound up working with someone else, and it went very well.

Another website is discussing this post now. Someone said "FSK is obviously incompetent because he didn't like Ruby on Rails." I decided to leave a comment.

===

If you want more fun, look at a more current post, "node.js sucks".

Again, there are people who agree with me, saying server-side javascript is a pants-on-head retarted idea. Then, there are people who say I'm a fool for dissing on spaghetti continuation-passing-style and asychronous coding style.

I get that for a *LOT* of posts.

http://fskrealityguide.blogspot.com/2009/02/stackoverflow-sucks.html

When I see some people agreeing with me, and a lot of people calling me out as an unqualified fool, then I know it's an important subject.

===

Also, my "Don't do programming tests!" rule and "Don't sign NDAs!" rule is a way to avoid wasting time on fools. People who require this are more clueless than average. I offer this as good advice for everyone, and not just people who are highly skilled. I'm aware that my "market value" is close to zero, even though I'm pretty sure that I'm highly talented. In a corrupt economy, "market value" is based on the ability to promote yourself, especially lying skills, rather than actual ability.

There are other rules I forgot to mention, "Don't bother with headhunters who insist on meeting you in person before forwarding your resume to the client." and "Don't give out your SSN to headhunters and recruiters." I still waste time meeting headhunters, so I don't follow my own rule yet.

Nils commented on Don't Sign An NDA Before A Programming Job Interview.

You should still bill them for the work you did.

They would just laugh at him. They would claim their current production code has nothing to do with the programming assignment they gave him. If they weren't cheapskates, they would have hired him as a short-term consultant. Unless you're prepared to sue (and lawyers are a waste of time and money), write it off as a loss and a learning experience. Employers know that it's expensive and impractical to sue them, giving them leverage to cheat you.


not_PC commented on Javascript Still Sucks.
I gotta ask (just curious). What are your thoughts on languages such as Erlang and Lisp?

I've worked with C++ (loved it), C (loved it... although it is an ugly duckling), Java (meh), PHP (bleh!!!!), C# (for some reason I feel better about this than Java, but not as good as C++), Erlang (weird syntax, but it does have the bonus of the actor model) and Lisp (will need to revisit, still don't 100% "get it").

not_PC commented on Javascript Still Sucks.

Oh and I've worked with Javascript, it seems like it's needlessly complex (the language itself), as if it could be done better.

Actually, there's really only a couple of classes of languages. There's C/C++/assembly. There's the LISP family (featuring functions as variables), which includes SCHEME and parts of Ruby. There's the Matlab/APL/Mathematica/R family. There's the SQL family. There's scripting languages, bash/shell, Perl, PHP, Python. There's the bytecode languages (Java, .NET).

I haven't used Erlang, so I have no opinion. I've never seen a job ad requesting Erlang experience, so I'm not motivated to learn it.

I did some LISP in college (SCHEME actually), in the introductory CS class. Now, that same class is design patterns and Java (yuck!), so I don't know if I would even finish a CS major if I were starting today. LISP suffers the same "it's slow" problem of any language other than C/C++. For certain AI problems, I heard it's good, but newer languages also feature the function/map constructs that LISP uses.

I've never seen a job ad requesting LISP experience (unless you're Paul Graham).

That was one of the biggest coups by Sun (now Oracle), convincing all the top CS departments to start using Java as their "language of choice". As usual, marketing beats quality.

Actually, I like PHP. If you're doing something web-based, it's much better than C/C++. To do the equivalent of php's file_get_contents (from a url) in C++ requires a lot of code or libraries. PHP is a thin wrapper for C. PHP handles hashes and arrays MUCH BETTER than Perl. The website php.net is a great resource for learning php, and has answered almost any question I've ever had. I haven't seen a website the same quality as php.net for fads like Ruby on Rails or node.js. I've written a couple of things in PHP, but then rewrote them in C++ when the PHP version was too slow.

Technically, any Turing-complete language would work for any task. Lately, I've been doing some Javascript, experimenting with writing a web-based game, PHP (This blog is in PHP and has some custom code. See if you can find all of it!), and occasionally C/C++ when PHP isn't fast enough.

My attitude towards languages lately is "I'm learning them only for a job." However, most jobs require you to ALREADY HAVE WORK EXPERIENCE in whatever language they are using. Learning it on your own isn't good enough. I figure if a language is in enough demand, someone will hire me to use it even though I have no prior experience in it. However, that strategy hasn't been working.

In my CS classes, the professors said "Learn the theory. Don't focus on specific languages. If you know the theory and have talent, you'll never have a problem learning a new language." While working and looking for a job, employers always demand experience in the specific language they're using. Experience in similar languages and older languages is worth $0.

Finally, Javascript was tacked on to Netscape browser in a hurry to beat out competitors, and now we're stuck with it as a standard.

MP commented on Javascript Still Sucks.

Head bob. Javascript is a neat little language with a simple(ish) syntax. I can't imagine writing anything big in it though.

I continue to be amazed how the industry has largely thrown off mature dev tools for web development which takes 10 times the effort to do 1/10 th the work.

I graduated from UC Berkeley in 1997 just ahead of the Java monster (sounds like you had a similar undergrad experience and have, like me, watched with dismay as the curriculum has ignored useful stuff for fluff and hype). I'm still annoyed at Netscape for intentionally muddying the waters by naming their crap Javascript to jump on the Java hype. I still have to explain that one to people.

Luckily I've managed to find work in the C++ performance niche. There are still some of us out here.

not_PC commented on Javascript Still Sucks.

Thanks for the explanation.

I've had a bad experience working in a PHP shop, hence my weariness towards it. I was told to write a desktop app in PHP when other languages such as VB .NET or Perl would have been better candidates. The reason? They didn't want to have too many languages that they're developing code in... I remember asking a Zend consultant if writing PHP desktop apps made any sense, he said no (there were other annoyances at job).

As for Javascript, I agree with your sentiment 100%.

PHP is not for a desktop app. It's for web-based only. (You can use some command-line shell scripts for PHP, but you'd probably be better off with Perl or Python for something like that. I do simple scripts in PHP because I know it better than Perl or others.)

However, sometimes it's easier to make something web-based rather than a desktop app, because then it's easier to troubleshoot, deploy upgrades, and control security.

My experience with Ruby on Rails was in a place that was using it incorrectly (in addition to Ruby on Rails itself being lousy). Also, my two Java jobs were on projects that were mostly disasters.

I also am surprised by the proliferation of web frameworks. When applying for the job, you aren't just expected to know the language, you're also required to already know the framework they're using.

The "advantage" of a framework is that, if your problem closely matches the framework, you can bang out a simple website quickly. The problem occurs when you want more features than the framework provides. Then, the framework becomes a handicap, because you have to deal with the framework overhead. You have to write framework-compliant code in addition to the code for whatever feature you're adding.

I always thought it would be foolish for a startup to use one of these frameworks, because then your product looks exactly the same as everyone else using the same framework. If your startup is truly original, there won't be a framework that covers what you're doing.

not_PC commented on Javascript Still Sucks.

I agree 100% with the framework perspective. At my last job, we had that exact same problem. The requirements were more than the framework and that was a nightmare. We had a consultant develop this little authentication piece that's 100% not standard in any way, after he was done, no one really knew how that code worked (and the guy who wrote it probably already forgot how it works).

Doing it straight in PHP would have been easier and without a consultant that we paid through the nose for :) .

Amusing, at the job for the Ruby on Rails disaster, the "architect" decided to use Ruby on Rails, having never used it before. He bet the startup on Ruby on Rails, and was wrong. Because he didn't know Rails, he had to hire a "Rails consultant". I tried learning Rails myself, but the documentation was incomprehensible. Rails demands a certain database layout, so I couldn't get Rails to work with the legacy database. When I tried to do something more complicated than the built-in scaffolding, there just wasn't any information on how to do that.

Some pro-State trolls say "FSK couldn't understand Rails because he's incompetent!", but it really was an incomprehensible mess (and still is, as far as I can tell).

not_PC commented on Javascript Still Sucks.

Actually, the original product worked just fine. The problem was that we had a self-described "architect" who wanted this project moved into an "MVC Framework", then the dude left and the manager was just cracking the whip to "Git 'er done!"... no, he literally said this.

Then the "architect" left and I was stuck with a self-absorbed man-child who knows only PHP and Javascript and thinks he's a gift to the universe.

I have the money to just not work... for years... in a savings account. I stuck around because other matters that _required_ I have a job (I prefer not to speak of these details, personal matter).

lol, at this stage, I'll start doing mobile game development and start selling little games for $1.00 or sell adverts. At least in that case I won't have the urge to hurl when I'm stuck between an egomaniac and an idiot.

Best quote from my manager: "You don't follow our design standards."

Me: "But we don't have anything written down that tells us how we should 'design' our apps or anything else."

Him: "Well, you should pick up on the flavor of what we do here by now."

Me:

not_PC commented on Javascript Still Sucks.

Oh and I don't know myself, but check out Zend and CakePHP for "fun", if you're that interested.

You should read "Software Architects Suck - Never Trust A Software Architect". Everyone I've met someone who called himself a "software architect" was a completely unqualified loser. A software architect is a full-time manager who doesn't code himself. That job description is tailor-made for someone who's good at promoting himself and emotional manipulation tricks, but has no actual coding ability.

Because the software architect doesn't get his hands dirty with implementation details, it's never his fault when the project fails.

I've concluded that Drupal is more worth learning than Zend or CakePHP. I haven't seen any ads for CakePHP in awhile, but I used to. Zend framework overuses design patterns from what I heard.

That's one big problem with frameworks. There's so many of them, and they come and go like fads. However, to get "buzzword compliant" with a framework, I need a couple years of experience in it to get past the HR/headhunter screening filter. By that time, the framework won't be in demand anymore and it'll be something else.

BTW, don't leave your savings in a checking account. You'll get robbed via inflation. Buy gold or silver coins, or the gold/silver ETFs. I haven't yet followed my own advice to buy PMs and take physical delivery.


sth_txs commented on Yahoo Will Buy Tumblr And Ruin It.
What is really crazy is that Yahoo in the late 1990's actually reached into the $250 range as a stock. Who would buy that?

When it's a bubble, valuation doesn't matter. All that matters is finding a greater fool to buy it. When it comes time for the bubble to burst, the banksters start short selling and naked short selling.


Anonymous Coward commented on How To Win A Stock Picking Contest.
> ought a different stock than the one he intended, and won.

I'm afraid I did something similar. I purchased an oil company by mistake with a similar name to a natural gas company.

The stock went up lots. I think I quadrupled my money.

not_PC commented on How To Win A Stock Picking Contest.

lol, welcome to trading.

Chrono commented on Is My Blogging Motivation And Ability Returning?.
Check these out:

http://www.meetup.com/nycancap/

http://agorism.meetup.com/

http://anarcho-capitalism.meetup.com/

I've been looking for more things to do.

not_PC commented on Is My Blogging Motivation And Ability Returning?.

I don't want to come across as someone that tells you how you live your life, but I have read about how those who have adopted a paleo diet have improved their physiological and psychological health (or rather, a non-paleo diet causes these problems in the first place.)

You could try this diet first and see what it does to you after some time (6 months or so).

Just a suggestion :) . You can ultimately lead your life as you see fit :) .

Anonymous Coward commented on Is My Blogging Motivation And Ability Returning?.

Original post

>I’ve done many programming tests and assignments, and it never led anywhere, and now I

>refuse. What was the point of doing all that work for a CS degree, if many employers

>demand a stupid screening test?

FSK's comment on comments

>the comments were mostly on stupid programming tests, and not NDAs, which was the main

>subject of the post.

You did mention programming tests in your post.

I was asked to sign a NDA twice. Once was just before a Google interview. The NDA wasn't printed out for me. It was on a monitor (not on a desk) fixed in a position that was hard to view. I couldn't read it properly. It should have been printed out. Anyway none of the interviewers spoke about their work. It was just an silly problem that really had nothing to do with computers and some general programming questions. As my first interview at in the morning, I only got the correct answer on my second attempt. But it was correct. Apart from that I did well, apart from one question where the interviewer spouted out the answer after giving me all of 5 seconds to answer it! At the end of it, a woman led me into an office to say Google wouldn't contact me if I didn't get the job! That was it.

The second time was for a silly two man company with an idea that anybody could see would never work out. There were currently hiring two contractors to design their website. Their first problem was their website couldn't work with the style sheet and third party company had produced for them! So they didn't even have a rudimentary website up and running!

At the time I was running my own small software business. They told me I should sell my business to Microsoft and make lots of cash!!!! Ha!

Anonymous Coward commented on Is My Blogging Motivation And Ability Returning?.

> The second time was for a silly two man company wit

I forgot to mention the two founders of this company were ex-bank employees and so obviously had connections to get them the start-up cash.

Obviously this company must have folded since I saw them.

Well, Seroquel isn't that bad. It did partially cure my color blindness. I haven't noticed any other negative side-effects. When I was taking Risperdal+Zoloft, I wasn't motivated to blog at all. It's coming back now.

I'll try going drug-free again someday. That isn't an option right now, because my parents would panic.

Regarding startup founders with money, I've seen that a lot. Some people raise money and have an idea for a startup, but no technical co-founder. Inevitably, they hire incompetent people to implement their product and fail. That was the case at the job where I was using Ruby on Rails. By random luck, they wound up hiring me, but I was in a junior position and couldn't set things on the right track. They did have a good business plan. In that case, having the wrong "software architect" was the difference between failure and cashing out for $500M+.

I've seen some startups where they hired an outsourcing company to develop version 1.0, but when I looked at it, it was junk that I could have done myself in a few days, and done better.

For someone with a good business plan and some seed capital, they might have a 1%-5% chance of success if they hired at random. Unfortunately, if you're computer illiterate, you aren't going to do better than random. If you aren't a good programmer youself, you are almost guaranteed to hire a good liar rather than someone good at implementing.

Is My Blogging Motivation And Ability Returning?

My motivation to blog is increasing, since I changed from Risperdal+Zoloft back to Seroquel. For the first time in awhile, I have a bunch of drafts queued up. I feel more alert and motivated. I’d like to try to switch back to taking nothing, but my parents would panic. I’m taking a lower dose of Seroquel than before, 50mg instead of 100mg.

I had my first really popular post in awhile, “Don’t Sign An NDA Before A Programming Job Interview”. It led to a traffic spike, more than 5x my normal readers. It got a huge boost from a citation by Captain Capitalism. Overall, it’s had more than 900 total pageviews, moving it up to 47 all-time on my Best Of FSK list.

My only disappointment for that post is that the comments were mostly on stupid programming tests, and not NDAs, which was the main subject of the post. BTW, I broke my own rule and took a programming test this week. I’m pretty sure I aced it, but they haven’t gotten back to me (which usually implies a rejection).

How To Win A Stock Picking Contest

My father watches the Communism Channel (CNBC) all day. There was an MBA stock-picking contest. Approximately 700 teams entered. They were interviewing the winner on CNBC. My father said “Wow! That guy who won the stock-picking contest must be a super-genius!” Do you see the fallacy?

SPOILER SPACE
SPOILER SPACE
SPOILER SPACE
SPOILER SPACE
SPOILER SPACE
SPOILER SPACE
SPOILER SPACE
SPOILER SPACE
SPOILER SPACE
SPOILER SPACE

Someone had to win the stock-picking contest. It is much more likely that the winner got lucky, rather than him being brilliant.

When I was in high school, a fellow student entered a stock-picking contest. He filled out the scantron form incorrectly, bought a different stock than the one he intended, and won.

To win a stock-picking contest, you have to take unreasonable risks. If you play it safe, diversify, and aim for a 20-30% annualized return, then you probably won’t win.

The stock-picking contest represents a call option. If you win, then you get the prize and then can put on your resume that you won, leading to better jobs. If you lose, there’s no penalty.

Therefore, if you enter a stock-picking contest, YOU SHOULD FOLLOW THE RISKIEST TRADING STRATEGY YOU CAN, taking risks you never would if you if you were investing your own money. To win a stock-picking contest, you should find the riskiest stocks you can (highest beta), pick one of them, and invest 100% in it. Based on the number of entrants, you should estimate how many standard deviations you need to beat the market by, in order to win. If the stock you picked goes up 10%+, then you should trade and invest 100% in another high-risk stock. Repeat until you achieve your target return (switch to cash) or the contest ends.

A stock picking contest is not like a running contest or other athletic contest. In a running contest, the best runner will almost always win. For a short time-period, a stock picking contest is much more like a luck contest, rather than a skill contest. It is almost guaranteed that the winner got lucky. A short-term stock-picking contest is more like a single hand of poker, where anyone can win, rather than a series of deep-stack no-limit tournaments, where the best player would have the most winnings.

A naive investor will pick a mutual fund or a hedge fund by looking at its 5 year track record. That is a bad idea. The top funds were more likely the beneficiary of luck, rather than having brilliant management. Having gotten lucky, the fund management will now advertise that to the hilt, and attract foolish investors while the fund has some mean-reversion. The winner of a stock-picking contest is much more likely to be the beneficiary of luck, rather than being skilled.

I certainly wouldn’t want someone managing my money with the same strategy he used to win a stock-picking contest. That means he’s taking unreasonable risks with my savings.

Unfortunately, that is the way to make money as a bankster. You gamble with other people’s money. If you are lucky, you keep the profits. If you are unlucky, then you declare bankruptcy and cheat your creditors (see MF Global), or get a bailout. In that sense, the stock picking contests are doing the right thing, rewarding people for taking unnecessarily big risks.

Yahoo Will Buy Tumblr And Ruin It

This story is interesting. Yahoo plans to buy tumblr for $1.1B, ALL CASH. Yahoo has a long tradition of buying out web businesses and ruining them, most notably delicious.

Amusingly, some tumblr users are organizing petitions against the buyout, knowing that Yahoo will ruin tumblr.


[In case the image link breaks, the text is: "Yahoo is about to buy tumblr! They also bought summly.com (and closed it), astrid.com (and closed it), delicious.com (and almost closed it), and flickr.com (and deserted it)."]

Why is this a boneheaded decision by Yahoo? First, tumblr has no “moat”. When Yahoo ruins tumblr, there’s nothing preventing people from going to another website. If tumblr users are already petitioning against the buyout, you can be pretty sure they aren’t sticking around once the deal closes.

Second, tumblr doesn’t have revenue. Even if you start putting ads on tumblr pages, that won’t be enough to offset the cost of running it. Plus, if Yahoo forces ads on users, they’re more likely to leave.

Why do such a stupid deal? It enables Yahoo’s management to seem brilliant. “Hooray for us! We paid $1B for tumblr, but it’s worth even more than that! Stock options and bonuses for all of us!”

Such purchases are indirectly financed by the State. Nominal interest rates are 0%, real interest rates are negative 10%-30% or less, and Yahoo is a large established corporation. As a large established corporation, Yahoo gets cheaper access to capital than other businesses, making it easier for them to exploit negative interest rates. With negative real interest rates, a stupid purchase can turn out to be profitable. For example, if Yahoo paid $1B for something that’s only worth $500M, a couple of years of financing at a -20% interest rate turns that into a profitable investment.

Javascript Still Sucks

I’ve been experimenting with Javascript. I wrote a “video poker practice” program. It deals a hand, asks you what you would draw, and figures out the correct play by checking all the possibilities.

I had already written a C++/MFC version of the program. For that version, the calculation was instantaneous, much less than a second.

For the Javascript version, the EXACT SAME ALGORITHM, it takes 5-10 seconds, an unacceptable delay. That’s why server-side Javascript is a stupid idea.

I also experimented with some objects. Consider the following code fragment:


obj.value = 5
obj.vaule = obj.value + 1

In C++, this leads to a compiler error, “vaule not a member of obj”.

In Javascript, it’ll add vaule as a new member of obj, without giving any error.

I’ve been using Firefox+Firebug to test my Javascript. I tried it in IE, and it didn’t work. That is annoying.

In terms of performance, C/C++ blows away all the other things I’ve tried, .NET, Java, PHP, Javascript. Surprisingly, almost nobody uses C++ anymore. These other languages aren’t 2x or 3x slower than C++. They can be 100x or more slower, especially for number-crunching.

Don’t Sign An NDA Before A Programming Job Interview

When looking for a job, there are a lot of people who are wasting time and not serious about hiring someone great. If someone has a psychopathic/parasitic personality type, they actually will be frustrated if they hire someone really talented, rather than appreciating their contributions. If someone is rude to you during the job interview process, that’s a dead giveaway that they will be rude once you work for them.

I already mentioned that programming interview tests and assignments are almost always a waste of time. If a programming assignment is too simple, then it isn’t a real test. If it’s too long, then it’s a huge time-sink just for an interview. Multiple-choice screening tests tend to have mistakes or they focus on obscure language trivia. There are too many times that I did the test or assignment, did well, and didn’t even get an interview. My favorite is when I take a defective multiple-choice test, get 90th percentile, and the headhunter says “The client doesn’t want someone who’s 90th percentile. He wants 99th percentile.” Even more offensive, sometimes the interviewer is trying to trick me into giving him free consulting with his assignment, taking some problems he couldn’t solve and turning them into an interview assignment. Now, I don’t bother.

What’s the point of having a CS degree from a top university and more than 10 years of experience if every hiring manager is going to treat me like a completely unqualified fool? That’s a sign that writing software is not a true professional career. If the hiring manager isn’t willing to talk to you for a few minutes to figure out if you’re intelligent or not, then he’s probably clueless.

I do give code samples. For the exact same code sample, I’ve had some people say “That’s a great code sample.” and others say “That’s not good enough.” Again, it reflects more on the cluelessness of the interviewer, more than me doing something wrong.

I’ve noticed another trend. Some flaky startups demand you sign a non-disclosure or even a non-compete as a prerequisite to an interview. I’ve reluctantly agreed a few times, and regretted it. When someone demands that you sign a non-disclosure agreement before an interview, their idea invariably is incredibly stupid and not worth stealing. For example, I’ve signed several NDAs for someone making “a real estate listing website”. There literally was nothing more to their idea than “I want to make a real estate listing website.”, their spec was a copy of Zillow, and they were demanding an NDA! Do they realize how many people are entering that area?

One person even demanded a non-compete before agreeing to an interview! Why is that a bad idea? If his idea is incredibly vague and ill-defined, a “non-compete” could be interpreted as almost any other programming job! How can I agree to not compete with an idea that hasn’t been disclosed to me?

Also, for a contract to be valid, there has to be consideration, an exchange of value. If I’m signing a NDA in exchange for an interview, that isn’t a valid contract. I have to receive some tangible benefit for it to be a valid contract. Even though it may not be an enforceable contract, I don’t want to deal with someone who’s going to sue me over something trivial, especially if I later find a job that could be interpreted as related to his stupid idea.

When someone demands a non-disclosure agreement before telling you their startup idea, that’s a dead giveaway that they know nothing about running a successful business. It isn’t enough to have an idea. You also need the ability to execute.

It’s also a type of egoism, on the part of a non-technical startup founder. The non-technical startup founder brings nothing to the table, other than his ability to raise money, contacts for potential customers, and his idea. Therefore, he treats his idea as if it’s something incredibly brilliant and valuable. The nontechnical founder has been thinking about nothing but this idea for months, causing him to have an exaggerated sense of its importance.

If you’re a startup founder with an idea but no competent technical co-founder, then your startup is doomed. Unless you have a technical cofounder that can develop version 1.0 by himself in a few months, your startup is worthless. (Version 1.0 is frequently called MVP or “minimum viable product”.) If you are not technical yourself, then you are almost guaranteed to hire a good liar instead of someone who is going to create a great product.

An NDA is insulting. It says, right away, that they assume that I’m going to cheat them, rather than someone sincerely looking for a job. Do I have nothing better to do than steal your stupid idea? An NDA is an implied threat to sue someone. I don’t like it when the first thing someone does after I meet them, is threaten to sue me.

Also, I went on a few startup interviews that DIDN’T require a NDA for an interview. They had good ideas or somewhat viable ideas with a legitimate chance of success. It’s only the true fruitcakes, who demand an NDA for an interview.

There is one exception. If you get an interview at Google or some other established business that demands an NDA for an interview, then you should sign it. My “no NDA” rule is primarily directed at startup interviews. Google isn’t going to tell you the details of their search engine algorithm on an interview; what do they think they’re accomplishing with the NDA, other than making themselves seem more important than they are?

Also, to avoid confusion, it is acceptable to sign an NDA or a limited non-compete at the offer stage. It’s insulting when someone demands that before an interview. My favorite clause in an employment contract is the “non-disparagement clause”, forbidding you to say anything negative about them. Most of the people with a “non-disparagement clause” in their employment contract did some shady things.

I’m adding a new jobsearch rule, “Don’t sign an NDA as a prerequisite to a startup interview.”, in addition to “Don’t take programming tests and assignments.” These rules exist to help me avoid wasting time and energy on clueless and evil people. My primary reason is that, by requiring an NDA, the startup founder is identifying himself as someone clueless. It’s a bad idea to work for someone clueless. Such an NDA probably isn’t enforceable anyway, because there’s no consideration to make it a valid contract. I don’t want to deal with someone who might sue me over something trivial, especially if I someday find a job that might be vaguely interpreted as related.

There is one problem. If I’m the only person who refuses programming tests and NDAs, then I look like “not a team player”. If a lot of people start refusing, then employers might start to get the message “This is an insulting thing for us to demand of applicants.” The economy is bad right now, making it hard to take a principled stand. I’m doing it anyway, to avoid wasting time dealing with clueless people. After an interview with someone abusive, I feel frustrated for several hours afterwards.

These rules have been learned the hard way, rather than a result of me being stubborn. I’ve done many programming tests and assignments, and it never led anywhere, and now I refuse. What was the point of doing all that work for a CS degree, if many employers demand a stupid screening test? I know that I’m a great programmer, based on my education, raw ability, and by comparing myself to coworkers. It’s hard to measure that in a flawed multiple-choice test or short assignment. I’ve signed several NDAs for startup interviews, listened to some incredibly stupid ideas, and now I don’t do that anymore.