The Internet, IP

Male, 37

I've worked at multiple Internet startups of different shapes, sizes and ambitions. Now I'm the CTO (Chief Technical Officer) of another small company with big dreams. I look nothing like the picture above.

If you copy and paste your homework question in here, I will answer with something that will, at best, get you an F on your project, and at worst, will get you kicked out of school. You have been warned.

SubscribeGet emails when new questions are answered. Ask Me Anything!Show Bio +


Ask me anything!

Submit Your Question

76 Questions


Last Answer on September 07, 2015

Best Rated

Given how high the demand has become for programmers, are you starting to see more people in the field who don't fit the introverted / nerdy stereotype?

Asked by --Bo-- over 9 years ago

I believe that you have to be, to some degree at least, introverted to be a programmer. It's a job that would make an extrovert unhappy. I'm not sure what even qualifies as "nerdy" anymore when everyone and their dog has a Facebook account, goes to comic-book-superhero movies, and plays video games. Perhaps it has something to do with living in your mom's basement and never showering, in which case no: we tend to bathe as often as anyone and live in our own homes (sometimes even with a spouse or SO).

If a good programmer is someone who writes good code, what would you say makes for a good MANAGER of programmers?

Asked by roooofus over 9 years ago

That's an excellent question, and if you ever find a recipe for one let me know...actually, don't, you could figure out a way to make a ton of money off of it. The one thing I can think of that all good engineering managers I've known had in common is that all of them were current or former programmers themselves. But that's not sufficient by itself.

Do programmers need a college degree? Or more to the point, do EMPLOYERS require programmers to have a degree?

Asked by PAH over 9 years ago

As a rule, larger employers are more likely to care about a degree than smaller ones. But even larger employers often leave themselves an out by saying "Bachelor's degree or equivalent experience". I know plenty of skilled and successful programmers who are college or even high school dropouts.

I think it's great that there's still at least one form of skilled white-collar work you can do without a degree. But there are advantages to studying CS in college. It'll get you a foot in the door early in your career. You'll learn a few useful things about computational complexity, algorithms, and data structures that you might not otherwise. You'll be exposed to a lot of different sub-fields (e.g. AI, graphics, databases, operating systems) and might fall in love with one you never suspected existed.

I have a website with a CMS (1UpSoftware). Most of the pages on the site are behind a paid wall. One of the menu items redirect to another website. Is there a way to keep the redirect behind the paid wall? Is there a script that I could redirect

Asked by Marsha over 9 years ago

Hard to say for sure without details but almost certainly not. From the browser's point of view there's little difference between a redirect and the user entering the site in their address field directly. Probably your best bet is to figure out how to remove the menu item in question entirely.

I have a programmer/analyst aptitude examination to do, do you know anything about what kinda of topics would be on the exam itself? worried because i am pretty sucky at math.

Asked by Aaron about 9 years ago

The kinds of math that keep coming up in programming are mostly what they call "discrete math," which is logic and set theory more than the algebra and geometry you'd probably learn in high school. (That assumes high school still works like I remember.) So you can expect to see a fair number of logic problems. A typical one might be like:


  1. John is taller than Mary
  2. Mary is shorter than Steve
Is Steve (a) taller than John; (b) shorter than John; (c) we can't tell from the information given?

They might also give you a list of instructions in "pseudocode," which is an explanation of some process in English but written out so it looks like a computer program, and ask you to figure out what the result of the instructions is.

I forgot my phone's password any suggestions ? ( I have an android phone)

Asked by The clumsy one over 9 years ago

Yes--try googling "Android phone forgot password." Programming is not the same as IT.

My dad always used to tell me "You'd make so much writing code!" Now that I'm older, money sounds like a good sorta thing to have. So, what the heck's a progammer and what's an average day?

Asked by Oblivious High.. Schooler about 9 years ago

Money's pretty handy.


So a programmer is someone who writes programs for computers. And what a program is, at the heart of it, is a list of instructions.

This can be "low-level" stuff where you deal pretty directly with the basic capabilities built into the computer, like: "Get this number from here, get that number from there, add them together, then put the result over there." Or you can build stuff at a "high level," using a lot of other software other people have already written, that would look more like "If Fred logs in to the system between 2 AM and 4 AM, and records show that he had more than 8 beers that night, cut off his access to email until 9 AM."

This is tricky because computers have no brains and no initiative of their own: their strength is in doing really simple, tiny, mechanical operations on information, but doing them extremely quickly and following the instructions they're given exactly. It's "exactly" that gets you, because if you write some code that you think is telling the computer to do one thing, and what it actually tells the computer is something entirely different, the computer is going to do what it's told, not what you meant. So even though we say a bug is a "computer error," it's almost always actually a programmer error.


My day is pretty typical of programmers in a small company: the big company experience is going to be diferent.

I come in to work between 10 and 11 (I'm a night owl), and check in with my co-workers to see if anything notable is happening that day. If something urgent had come up, they'd have called me on the phone already, but now that our site is a little more mature it's gotten a lot more stable than it used to be, and emergencies are a lot rarer. Which is great.

I've got a few people who report to me, so I check on their progress real quick and make sure they have a plan for the day. Then ideally I spend most of the rest of the day actually programming. The key is to avoid a lot of interruptions, because to write code efficiently you've got to concentrate for a long time. You learn to schedule unavoidable interruptions for either the start or the end of the day, so that you're not chopping up your day into lots of little pieces.

About 5 PM we get everyone (there aren't many of us) together in one room and talk briefly about what we did that day. People start to leave after that, and I often have the place to myself for two hours or more, which is a great opportunity to work on hairier stuff that takes some peace and quiet.

I normally try to leave by 7:30 or 8 PM, so I can get home and have a while to hang out with my wife before she goes to bed.

It's not for everyone but I think it's a pretty fun way to make a living.