Category Archives: Uncategorized

Soft Skills is the Manning Deal of the Day!

Great news!

Early access to my new book Soft Skills: The Software Developer’s Life Manual, is on sale today (9/11/2014) only as Manning’s deal of the day!

If you’ve been thinking about getting the book, now is probably the last chance to get it at a discounted rate.

sonmez cover150 Soft Skills is the Manning Deal of the Day!

Just use the code: dotd091114au to the get discount on checkout.

I’ve been getting quite a few questions about the book, so I thought I’d answer them here:

Q.) Is this just a collection of the blog posts on this blog?

A.) No. The book is almost entirely new material. It is around 325 pages of text and even though it has some of the same topics as some blog posts on this blog, almost all of the material is completely new.

Q.) When will the actual final book be released?

A.) The final book is actually done. Or rather all the writing is done, but it still needs to be finalized and have a final round of proofreading. But, the anticipated date is for Dec of 2014. If you purchase the MEAP now, you’ll get early access to the book and also get the final released version.

Q.) Why should I purchase the MEAP?

A.) It shows my publisher, Manning, that there is a high level of interest in the book, which increases the size of the print run and distribution. You’ll also get access to the a large portion of the content right away and have a chance to contribute valuable feedback to the book. You also have the chance to pick up the book at a discounted rate (at least today you do.)

Q.) Can I get a free sample of the book content?

A.) Yes, just go here to read the first chapter for free. The first chapter will also tell you everything you need to know about what is in the book.

If you have any other questions, just hit the contact me form and ask them.

Just to let you know, I don’t have control over when Manning does sales on books, so my book might not be on sale again or at least not for a while, so now is a good time to get it at a discounted rate.



Soft Skills: The Software Developer’s Life Manual, Early Access

Wow, this is a pretty exciting week for me.

This week, the book I’ve been laboring on, is finally available for early access through Manning’s MEAP program.

softskills manning Soft Skills: The Software Developer’s Life Manual, Early Access

I spent about four months working full-time on this book. That might not seem like a lot of time, but believe me, writing a book is no easy task.

This was easily one of the most difficult things I have ever done—it’s not easy to consistently write several thousand words a day.

I’ve always wanted to write a book, but I never wanted to write a purely technical book. I’ve always felt that technical books get outdated too quickly and aren’t very interesting or fun to write.

When Manning approached me about writing a book, it was the golden opportunity to write the kind of book that I’ve always wanted to write—the kind of book that I wished I had in my career as a software developer.

Soft Skills, is a totally different kind of book about software development, because it isn’t about software development at all—instead, it is about the software developer.

I wanted to write a book that approached a software developer’s life from a holistic viewpoint. What I mean by this is that instead of just focusing on career development or market yourself, the book should focus on just about all areas of a software developer’s life.

And that’s exactly what the book does. The book covers a wide array of topics, from career advice on to even fitness and finances. I tried to not hold anything back and to give away everything I knew about becoming a successful software developer in all areas of your life.

You can check out the table of contents here, or read the first chapter of the book for free here.

This isn’t the official launch of the book, just an early access preview. The official launch will either be at the end of the year or early next year. But, if you buy the book now, you’ll get access to all of the early content and the full book when it is published.

Oh, also, if you buy the book now and you are willing to give a review on Amazon when the book officially launches, I’ve got a special something for you. I’ll give more details when the official launch date approaches.

I also wanted to take a moment to thank all of you who read this blog and are part of the Simple Programmer community. Without the support and encouragement of many of you, this book wouldn’t have really been possible.

I sincerely hope this book is a book that helps you to not just get a better job, but to be happier and more productive in your career. My goal with Soft Skills was to create a book that would be applicable to all software developers, regardless of experience level, technology choice or anything else.



Taking Action

On any given day my inbox is full of emails from software developers asking me for advice on all kinds of topics. Even though many of these questions are unique, I’ve found that many of the emails have one root, all-encompassing solution: taking action.

Most people never actually do anything with their lives.

Most people are so afraid to make a mistake that they make the biggest mistakes of all—they do nothing.

nothing Taking Action

If you are completely honest with yourself, you’ll probably find that some of the biggest, most important questions you have, you already know the answer to.

You already know what you should do. You might be a bit unsure of your answer, you might feel like you need to think about things more or get some more opinions, but deep down, inside, when you really look hard, you already know the answer.

So, why don’t you just do what you need to do?

Good question.

In fact, if you just started doing what you know you should be doing right now, if you would just take action, you’d have a much better life, a more successful career, and you’d probably be a lot healthier as well.

At some level we all know this is true, yet we have such a difficult time doing what we are supposed to do.

Again, the question is why.


There are many different whys, but I think it usually starts with the problem of uncertainty. We can do our best to make a decision, but we can’t ever really know for sure if we are right—at least not till we take some action and move forward.

I get a lot of software developers asking me how to improve their career or whether or not they should invest their time in a particular technology or platform. Most of the time these software developers already know the answer to these questions, but they are unsure of the answers they have come up with. They are looking for an outside party to validate what they already know. They are looking for me to bring some certainty to this uncertain world.

Unfortunately, I can’t. I mean, sure, I can tell you that I think learning mobile development is a good idea and that the approach you have planned out sounds reasonable. But, I can’t know for sure. Neither can you.

Life is too complicated to know for sure that some choice or path will lead to success—even if we imagine that we can define exactly what success is—which is more difficult than it sounds. The truth is that you might have to go down many paths to eventually find success. You might have to make a lot of mistakes and fail many times before you find the correct path.

And—that itself isn’t even accurate. What I actually mean is that the correct path has to be carved out. It doesn’t exist yet. You can’t see far enough ahead of you now to even know what the path looks like. As you walk the path, as you encounter and overcome obstacles, as you make slight course corrections and change directions, you discover and create the path at the same time.


Now, some of us are held back by more than just uncertainty. Sometimes you know exactly what you should be doing, what action you should take, but you just don’t want to do it.

Most often when we are stopped by this barrier, we call it procrastination. We don’t just say we aren’t going to do what we know we should be doing, but instead we put it off until later. Your mind has a much easier time saying “I’ll do it tomorrow” than admitting that you have no intention of doing something—especially when you know it needs to be done.

(For a good book that can help you get past this habit, check out: Eat That Frog!: 21 Great Ways to Stop Procrastinating and Get More Done in Less Time)

Often the correct path is the difficult one. You might find yourself holding out for a simpler solution; waiting for someone else to blaze a path for you; to cut down the overgrowth with their machete and to build a nice smooth road for you to travel.

machette Taking Action

The reality of the situation though is that there is no one coming to rescue you and give you a simple solution. In fact, the brush may become more overgrown the longer you wait to take action.

Growth is often uncomfortable. Action that leads to growth can be quite painful. When I go into the gym in the morning and lift a heavy weight, it doesn’t exactly feel good. When I sit down to write a long blog post, it doesn’t feel that great either. It’s a bit painful to do something that will improve you or advance you in some way. Don’t waste your effort trying to avoid the pain, just face it head on and realize it is the only path to growth.


And let’s not forget the fear of failure. The reason why I hesitated so much to write the first few sentences of this post is because I thought it might suck. I still do. As I am typing this very sentence, I am tempted to highlight all the text above and push delete.

What finally got me to start writing? Well, I decided that I need to get a post done for this week and that no post is ever going to be as good as I want it to be, but that doesn’t matter. What matters is that I do something. Sure, this post might suck, but I’ve decided I am ok with that. What I am not ok with is doing nothing. I’m not ok with sitting here in this coffee shop browsing Facebook while I think about the perfect post to write and exactly how to word it. I’m not ok with letting a Monday go by that I don’t have a blog post to publish, because I’m too afraid to take action.

Perhaps that is where you are today. Perhaps you know what you should do, you are even willing to do it, but you are just so afraid of doing it and failing that you sit at your desk paralyzed with fear. If that describes your current situation, I want you to consider something: what is the cost of not acting?

The cost of doing nothing

What will certainly happen if you take no action at all? Think carefully about what the consequences of failure are versus the consequences of stagnation. Would it be better to do something and have it turn out less than you expected than it would be to do nothing at all?

Sure, in a few cases it is actually better to do nothing than to risk a critical failure. But, if we are honest with ourselves, we have to admit that those instances are pretty rare. In almost all cases it is much more beneficial to take some kind of action—even if it results in failure—than to do nothing at all.

Besides, usually when we fail we learn something—often, it is the only way to learn something or to make any progress. If we aren’t willing to embrace a few failures, take it on the chin a few times, we’ll never advance. You don’t become a world-class boxer without being punched in the face a few times.

So, bottom line is: if you are wondering what you should do with your life, if you are questioning what you should do with your career or what programming language you should learn, don’t ask me… ask yourself. But, don’t just ask yourself, actually take action and do something. Don’t worry if what you do ends up being wrong. Just don’t sit idle and let opportunity pass you by. I’ve made a lot of mistakes in my career. I’d say I bat at perhaps 25% on average. But, at the risk of sounding cliché, I miss 100% of the shots I don’t take.

Hey, did you like this post? Want to take some action right now? Join the Simple Programmer community by clicking here and you’ll be part of a community of over 5,000 other software developers who want to improve their careers and their lives by taking a holistic approach to software development.

How Often Should I Blog

In this video I talk about how often you should blog and why blogging more often is better as long as you can maintain a consistent level of quality.

How to Negotiate Your Salary

I’m often surprised how many software developers neglect to do any salary negotiations at all or make a single attempt at negotiating their salary and then give up and take whatever is offered.

Negotiating your salary is important—not just because the dollars will add up over time and you could end up leaving a lot of money on the table—but, also because how you value yourself and how you handle yourself in a salary negotiation will greatly influence how you are perceived at the company you are working for.

Once you are part of a company it is difficult to shake the first impression that has been pinned on you. If you handle salary negotiations in a tactful way that indicates your value while still respecting your prospective employer, you’ll likely paint yourself in a more positive light which can have huge implications on your future career with that company.

negotiating How to Negotiate Your Salary

Negotiations begin before you even apply for the job

Your ability to negotiate your salary will be greatly influenced by your reputation. Think about a famous athlete or movie star, how much negotiation power does having a well-recognized name have for either of these professions? The same is true for software development or any other field. The more recognized your name is, the more power you will have when it comes to negotiations.

So what can you do to build up a name in the software development field?

For some people it will happen by chance, but for most software developers it will require some careful planning and tactics. If you follow this blog, you probably know that I highly recommend building a personal brand and actively marketing yourself as a software developer.

The basic strategy to do this is to get your name out there through as many different mediums as possible. Write blog posts, get on podcasts, write books or articles, speak at conferences and user groups, create video tutorials, contribute to open source projects and whatever else you can do to get your name out there.

Since, marketing yourself isn’t the topic of this post, I won’t go into details here, but if you are interested in learning more about marketing yourself as a software developer, you can check out this post on the topic or if you want a real in-depth treatment of the topic, you can check out my How to Market Yourself as a Software Developer course.

Just remember the better job you do of marketing yourself and building a reputation, the easier it will be for you to negotiate. This might even be the most important factor. I’ve worked with software developers who have been able to literally double their salaries based on nothing but building up a bit of a personal brand and online reputation.

How you get the job is extremely important

The second biggest factor that will influence your ability to negotiate your salary will be how you got the job. There are many different ways to get a job and not all of them are equal. Let’s examine a few different ways you might get a job.

First, you might get a job by seeing a job posting and cold-applying to that job posting with your resume and hopefully a good cover-letter. In fact, many job seekers think this is the only way to get a job. This is in fact the worst way to get a job. If you get a job in this manner, it is difficult to have a good negotiating position, because you are in a much weaker position than the employer. You are the one taking all the initiative and asking for the job.

The person with the greatest need always has the disadvantage when negotiating anything. Ever played monopoly? Ever tried to negotiate with someone who didn’t really need anything from you, but you needed one of their properties to complete your monopoly? How did that go?

Another way to get a job is through personal referral. You know someone who works at a company, they personally refer you for the job and you end up getting offered the job. This is definitely a much better situation than just applying for a job. In fact, you should always try to get a personal referral when you are actively seeking a job. In this situation, the prospective employer might not even know that you are actively looking for a job—so, your need is going to register as less. And, because you got a personal referral, you already have some credibility. You are essentially borrowing the credibility of the person who referred you for the job. I’m sure you can figure out that the higher credibility of the person who referred you for the job, the higher credibility you will have. This credibility will greatly influence your ability to negotiate when given an offer.

Ok, so how else can you get a job? How about the best way possible? When the company who offers you a job finds you and comes after you either directly offering you the job or asking you to apply for it. How the situation presents itself will influence your negotiating power. Obviously, your best situation would be if a company knows of you and directly offers you a position without even an interview. In that case you’ll be able to just about name your own price. But, any time an employer directly seeks you out, you’ll have a very good position to negotiate from.

Now, you might be thinking “yeah right, an employer is not going to directly seek me out, much less offer me a job without an interview.” I’ll admit, it is somewhat rare, but it does happen. The best way to make these kinds of opportunities happen is to build up a name for yourself and market yourself like I mentioned in the first section of this post.

First person to name a number loses

money How to Negotiate Your Salary

Ok, so now that we’ve covered the preliminaries—which are actually the most important part of negotiating your salary—let’s get into the actual details of negotiations.

One important thing to understand is that the first person to name a number is at a distinct disadvantage. In any kind of negotiation, you always want to act second. Here’s why:

Suppose you applied for a job and you expected that the salary for that job was $70,000. You get offered the job and the first question you are asked is what your salary requirements are. You state that you are looking for something around $70,000. Perhaps you are even clever and say somewhere in the range of $70,000 to $80,000. The HR manager immediately offers you a salary of $75,000. You shake hands, accept the deal and are pretty happy—only there is one big problem: The HR manager had budgeted a range from $80,000 to $100,000 for the job. Since you named a number first, you ended up costing yourself potentially as much as $25,000 a year—whoops.

You might think this is an extreme example, but it isn’t. You have no way of knowing what someone else is expecting to offer until they tell you. Revealing your number first puts you at a distinct disadvantage. You can’t go up from the number you state, but you can certainly be talked down. So, when you name a number first, you have no upside, but a big downside potential.

Oh, but you are more clever than that you say. I’ll just name a really high number. This can blow up in your face as well. If you name too high of a number, you might not even get countered, or you may get countered very low in response. It is almost always to your advantage to have the employer name a number first.

The only exception to this is when an employer is purposely going to low-ball you. This situation is pretty rare, but if you have a good reason to suspect this will happen, you may want to name a number first, to set an anchor point. Why? Because if you get a low-ball number, it may be difficult to get an employer to come up a lot from that number. Of course, in that situation, you probably aren’t going to have much success no matter what you do.

But, what about when you are asked to name a number first?

Don’t do it. Just say “no.”

Yes, I know this is tough advice to follow, but let me give you some specific situations and some ways to deal with them.

First of all, you may get asked about your salary requirements before an interview or as a field on a job application. If you have a field on a job application, leave it blank if possible or simply put “negotiable depending on overall compensation package.” If you have to name a specific number, put $0 and then explain why later.

If you get asked directly in a pre-screening interview about what salary you require or are expecting try to answer the same thing. Say it depends on the overall compensation including benefits. You may get a response stating what the benefit would be or that they just need a general number. In this case, you should try to as tactfully as possible turn the question around and ask a series of questions like the following:

“I’d rather learn more about your company and understand more about the job I would be doing before naming an exact number or estimate, but it sounds like you are just trying to figure out if we are in the right range, so we don’t both waste our time—is that correct?”

Mostly likely you’ll get a yes. Then follow up with something like this.

“You must have a range that you have budgeted for this particular position, right?”

Again, you should get a yes. If you are brave, just pause here and don’t say anything else. You may then get them to answer with the range, but if you aren’t brave or they aren’t volunteering any information, you can follow up with:

“Well, if you tell me what the range is, even though I don’t know enough to state exactly what my salary requirements are, I can tell you whether or not the range matches up to what I am looking for.”

Now, obviously, this isn’t easy to do, but if an employer is going to ask you to name a number, there is no reason why they shouldn’t expect to name one as well—or even first. Try as hard as you can to get them to name one first.

If they absolutely refuse, you still have some options.

If you have to name a number, name a large range and make it conditional on the overall compensation package, but make sure the lower end of the range is slightly above the absolute lowest you are willing to go.

For example, you might say: “I can’t really name an exact figure because it is completely dependent on what the overall compensation package is, but I would generally be looking for something between $70,000 and $100,000—again, depending on the overall compensation package.”

What if you are asked about your current salary?

This is a tough one; technically it’s none of their business, but you can’t exactly say that. Instead, what you want to do is to turn the question around. There are a variety of different ways to do this, but here is one suggestion:

“I’d prefer not to say what my current salary is because if it is higher than what you expect to pay for this job, I wouldn’t want that to eliminate me from being considered for this job—since, I might be willing to accept less for the right position—and, if it is lower than what this job would pay, I wouldn’t want to sell myself short either—I’m sure you can understand.”

This is a pretty honest answer, which will mostly likely avoid the question without causing offense. You can also state that you’d just prefer not to answer that question or that you are under a confidential agreement with your employer to not talk about exact salary numbers.

If you absolutely have to name a number, try to make the number as variable as possible by talking about bonuses or benefits that affect the overall compensation or state it as the overall compensation package is valued at x dollars and add up what any benefits you are getting are worth.

When you have an offer

If you can avoid the salary question, you’ll eventually get an offer and it will have to have a number on it. You can’t really get an offer without a number, because it wouldn’t really be an offer. But, negotiations don’t end when you get an offer, that is unless of course you named a number and they gave it to you—whoops.

contract How to Negotiate Your Salary

(By the way, if you are in this situation, don’t try and pull any stunts. If they give you what you asked, you pretty much have to either take it or leave it. If you name a higher number than you first asked, not only will it be bad taste, but you’ll likely get the entire offer pulled.)

Once you have an offer in hand, you will almost always want to counter. What you counter with is up to you, but I’d highly recommend countering as high as your stomach will allow. You might think that by coming closer to their number, you’ll be more likely to get a favorable response, but in general that approach will backfire. Pick a high number and counter back.

Now, you might be worried that doing this will cause you to lose the offer completely. As long as you do it in a tactful way, it is pretty unlikely that the offer will be completely taken off of the table. Usually, the worst case scenario is they stay firm on their offer and tell you that you’ll have to take it or leave it. If the offer does get pulled, you can always respond by saying that you made a mistake and after weighing everything you realized that their original offer was more than fair. (Not fun, but if you really need the job, you can always go down that road.)

The fact of the matter is that once you are offered a job, you aren’t likely to just get that offer pulled. Remember, an employer that has invested that much time in interviewing you and making an offer isn’t going to want to just start over again, so you can afford to be a little brave.

In most cases when you counter, with your high counter, you’ll get back another response with a slightly higher offer. You can accept this offer, but in most cases, I’d recommend countering just one more time. Be careful here, because you can piss people off. But, one tactful way to do it is to say something like this:

“I’d really like to work for your company. The job sounds great and I am excited to work with your team, but I am still just a bit unsure on whether the numbers will work out. If you can do x dollars, I can be sure and commit to it today.”

If you do this right and don’t ask for something too much higher, you can usually get a yes. Most employers would rather pay you a little bit more rather than lose you. Worst case, usually, is that they will tell you they can’t go any higher.

I really don’t recommend negotiating beyond this point. If you are really brave you can try, but past a second counter-offer, you are really risking losing good-will and souring the deal. You want to appear shrewd, but not greedy. No one likes to feel like they just got worked or taken advantage of.

(For a good book on negotiation, check out: Getting Past No: Negotiating in Difficult Situations)

Some final advice

Know your numbers well. Research as much as possible what the salary ranges are at the company you are applying for and what the salary ranges are for comparable positions. There are some sites online you can use to get salary ranges, although they aren’t always reliable. The better the case you can make for what your salary should be, the easier your negotiations will be. You are in a much better position if you can name exact number ranges and statistics that show why the salary you are asking for is justified.

A reason for the salary you are requesting is never because you “need” that much money. No one cares what you need. Instead talk about why you are worth a certain amount or what benefit you can bring to the table. Talk about what you have done for past employers and why investing in you at the salary you are requesting is a good investment.

Get as many offers as possible at any one time, but be careful playing them against each-other. You are at a distinct advantage in any negotiation if you can afford to walk away from the deal. To be in this position, you may need to get multiple offers lined up, so you may want to apply for several jobs all at once. Just be a bit careful in playing different offers against each other. You can do it in a tactful way by talking about how you have a couple of offers you are currently considering and want to make the best decision, but be careful not to sound arrogant. Confidence is good, arrogance is bad.

Become a Simple Programmer

Like this post? Found it helpful? Leave a comment below or share it and don’t forget to sign up to become part of the Simple Programmer community. Over 5,000 other developers have already joined.




I Hate Astronomers

The majority is not always right.

If you get nothing else from this post, but it has helped remind you of this fact, then I’ll feel that I have done my job.

The society we live in today is more connected than ever. It is easier and easier to share ideas and communicate. Right now I am writing this post from Maui, Hawaii. It’s amazing to think that the world is so connected that I can do my job from almost anywhere in the world.

But, here’s the thing: With an ever-increasing connectedness of the world, there is also an exponentially increasing amount of group-think. The easier it is for us to share ideas, the easier it is for certain ideas to become popular and to all but drown out the voices of other ideas—right or wrong.

astronomer I Hate Astronomers

The plague of unthinking

You can see symptoms of this phenomenon everywhere. In the software development world, we are really good at grasping certain development methodologies, not based on their soundness or results, but based purely on popularity. How else do you explain JavaScript becoming such a popular programming language or dependency injection becoming so widely misunderstood, yet so widely used?

But, the phenomenon doesn’t just stop at software development methodologies. No, it extends to the culture of software development. At the risk of delving into politics again, the recent wave of “bro shaming” has been a great example of exactly what I am talking about. (Don’t interpret this as an endorsement or critique of that trend, I have an opinion on the matter, but I don’t intend to discuss it in this article.)

Outside of the realm of software development it is even worse. My Facebook and Twitter feeds are full of uneducated opinions and beliefs, not based on individual thinking, but almost entirely attributable to no thinking at all, just mindless following of what it appears the majority is supporting.

But, wait you say, aren’t there usually two sides of an issue? Don’t we see the pro-Palestinian and pro- Israel faction posts? The pro-life and pro-choice factions? The gun control people and the 2nd amendment people? What about the rape culture crowd and the anti-feminism crowd? Democrats and Republicans? Conservatives and liberals? Evolutionists and Creationists?

Yes, and that is exactly the problem. Who said there were only two choices? Who said either of these choices are correct at all? Now, don’t get me wrong. I’m not trying to ignore the binary nature of many debates. Yes, the light switch is either on or off, but how many times do we argue the state of the light switch based on what a majority that we happen to like says? And how many times do we fail to recognize when there indeed is a dimmer switch in place?

choices I Hate Astronomers

My point is: Most of us pick a side of a debate and blindly believe not only the arguments of our cause, but all of the additional baggage that goes with it.

Wait you say, not me. I don’t do that. I have good reasons for believing what I believe and I only support causes I believe in because I have formed my own opinion on the matter. My opinion just happens to coincide perfectly with the majority of other people who stand on my side of the line.

You are, of course, welcome to continue to hold this viewpoint—after all, the majority does—but, you have to at least admit it is kind of odd that so many people tend to come to the same exact conclusions about so many different issues.

I can see that I’m still not convincing you. I can still hear your protest in my mind. So, here is what I am going to do: I’m going to be the first to admit that I suffer from the weakness that I am accusing you of having. There. Now I am preaching to myself as much as I am preaching to you.

We give scientists, religious scholars and historians far too much credit.

Warning, I’m probably going to offend you here—perhaps even piss you off—too bad, it can’t be avoided.

The truth is, we tend to believe far too much of what we hear from “credible sources” based entirely on their credibility. Don’t get me wrong, I’m not against science and scientific achievement, I’m not a conspiracy theorist, or a religious radical either. What I am is against the mindless acceptance of facts—or rather theories as facts—based on nothing but the authority of their source.

In particular I hate astronomers, and I’ll tell you why. Astronomers make up anything they don’t understand or doesn’t fit their model of the way things work. Whether you believe in creationism or the big bang theory, you have to admit they are both wildly crazy ideas—and more importantly that they are both completely unprovable.

Again, don’t get me wrong, I’m not going to try and sway you to my point of view. It doesn’t matter whether you hold my point of view or not. What matters is that you spend the effort and time to think for yourself on the matter and not base your opinion solely on what an authority says. Sometimes the right answer to a question is “we don’t know and we may never know.” But, that brings me back to my problem with astronomers; they don’t tend to ever say “we don’t know.” When something doesn’t fit their model, they invent an explanation that fits it.

I know I’m getting a bit heretic here, and again, don’t get me wrong, I know we know a lot of facts about space—we did successfully land human beings on the moon after all. But, it’s important to realize that certain ideas that we take for granted like the explanation of why there isn’t the expected amount of mass in the universe—dark matter—are nothing but attempts to explain away questions that should really be answered with “I don’t know.”

It infuriates me to no end when I read news articles that state the Earth is x-million-years old or that some event happened y millions of years ago as if it is an absolute fact, instead of a bunch of scientists’ collective guess. Again, don’t get me wrong, I’m not trying to convince you that the Earth is not old—it doesn’t matter if I believe it is or not—but, facts are facts and opinions are opinions. Facts are provable, opinions and theories are not.

earth I Hate Astronomers

When we start treating opinions and theories as facts, simply because a majority of people believe them to be so or because experts tell us they are “basically true,” we start to venture into all kinds of dangerous territory. All kinds of historical atrocities have been committed because of this simple slight of hand. When people stop thinking for themselves and allow scientists, religious leaders, historians—and worst of all politicians—to do the thinking for them, the depravity of mankind fully blossoms and we surely are not far from a dark age.

And it’s not just scientists, it is religious leaders as well that are doing the thinking for the people and asking them to accept opinion as fact. How many people blindly follow the teaching of a religious leader without questioning what they believe or even opening up their own religious text to confirm what they have been told?

We don’t have to be skeptical of everything

Again, don’t take this post as in support of or being against either science or religion or even conservatism versus liberalism. I have my opinions on both, but the whole point is that neither my opinions matter, nor do the opinions of those that have much more credibility on the subject than myself. The opinions that matter are your own. The opinions that are truly your own, not the ones that you or I echo imagining that just because they come from our mouths, they come from our brains.

This doesn’t mean that I’m skeptical of everything. It is easy to dismiss my viewpoint by saying that I am absolutely ridiculous. After all, one can’t simply question every fact that is presented to them. We have to take certain things on faith otherwise no progress will be made. You know, standing on the shoulders of giants and whatnot?

But, that is not what I am saying at all. I take for fact the things which can be proven as fact, but I don’t take them without the proof. If you tell me that 2 + 2 equals 4, I won’t just believe you. You’ll need to show me the proof of it. But, once you prove it to me, I’ll have the capacity to figure out what 5 + 5 is for myself.

Obviously, we have to take certain things for granted. There is no need to doubt gravity—although scientific explanations for gravity are still somewhat questionable.  Likewise, we know certain things about biology, physics, medicine and a host of other fields, but just about every field of study has some amount of opinion baked in with the facts and we are asked to eat the pie without ever knowing the ingredients.

So, here is the deal: Don’t take what anyone says for fact, just based on the merits of the source or their credibility. Opinions and theories are often presented as facts—even by sources that should know better. And, opinions are often sugar coated to convince you of their merit, without asking you to take a moment and think for yourself. The moral right, as expressed by the majority, is often used as a make-shift club with which to beat people over the head who dare to form their own opinions.

(By the way, I’ve recommended this book before, but if you want a though provoking read demonstrating exactly what happens when a societies individuals stop thinking for themselves, check out Atlas Shrugged)

If you like this post, sign up here to join over 5,000 other Simple Programmers who get these posts delivered directly to their inbox every week. If you hated this post, share it on Twitter and let everyone know what a jerk I am.

The Experience Paradox–How to Get a Job Without Experience

One of the most difficult things about becoming a software developer, is the experience paradox of needing to have a job to get experience and needing to have experience in order to get a job.

This problem is of course not relegated to the field of software development, but many new software developers often struggle with getting that first job–especially if they come into software development from another field–most notoriously quality assurance. It definitely seems like it is especially difficult to transition from the role of quality analyst to software developer–even if you can competently write code.

So, how exactly do you get experience when can’t get a job without it?

experience The Experience Paradox  How to Get a Job Without Experience

It’s an interesting problem to ponder. There doesn’t seem to be very many good solutions to the problem. Most software developers just assume you have to get lucky in order to get that first job without experience. The other popular alternative it to simply lie about your previous experience until you have enough that you don’t have to.

I’m not really a big fan of making up a fake history in order to get a job. It’s pretty likely you’ll get found out and it’s not a great way to start of a relationship with an employer.

And, I’m also not that fond of leaving things up to luck either. Counting on luck isn’t a good way to build a successful career. I’d much rather work with things that are directly under my control than rely on chance.

So, that brings us back to the question we started with–or rather a modification of it: Without experience, lying or dumb luck, how can I get a job?

One of the best ways to gain experience without a job is to create your own job.

What’s that you say? Create my own job?

Yes, you heard me right. There is basically nothing stopping you from creating your own company, hiring yourself as the only employee and doing real work that will count as valid experience.

Now, of course, it’s not just as simple as that. You need to create some real valid experience. You can’t just create a shim company, call yourself the lead software developer and use it to get a job. But, what you can do is to work on creating a few simple apps and do it under the name of a company that you create. There is nothing dishonest or fishy with that approach.

Today, it is easier than ever to do, because it is possible to create simple mobile or web application as a solo developer. It is even easy to sell an application you create–although, getting customers might be the hard part.

I usually recommend that developer starting out, who are trying to get experience, start off by developing a few mobile applications. The reason I recommend this approach is because mobile applications are generally expected to be fairly small projects and they are easy to sell and distribute. Actually having an application that is being used or sold bring a bit more credibility than just building something for “fun.”

But, you don’t have to build an mobile application. Really, you just have to build something useful that is a real application–not just a demo project. This means building something end-to-end.

The barrier to entry is extremely low today. Just about anyone can build their own application and distribute it. That means that you can build a real, legit software company all by yourself.

With a few applications created, not only will you be able to claim some real valid experience, but you’ll also be able to show the source code for the applications you built at a job interview. You might even find that you will be ahead of some developers who have 4-to-5 years experience, but have never successfully built an application end-to-end. Many software developer start out getting experience maintaining existing systems, but never learn how to actually build a complete application. If you can show some experience building a complete application, even if you are doing it for your own company, you can put yourself way ahead.

If one of your applications takes off, you might even find that you don’t need to get a job working for someone else. Your own software company might become successful itself.

They key is getting into the interview.

You might be thinking that creating your own company and building a few apps is not the same as having a real job and having real experience. I tend to disagree, I tend to think it is actually more valuable and shows a more practical ability, but I realize that some employers and some developers will disagree with me.

It doesn’t matter though, because the point of gaining this experience is to get into the job interview. It is very difficult to get a job interview without any experience on your resume, and it is fairly easy to make a job at your own company look just the same as a job from any other company on your resume.

Of course, once you get into the interview, you need to be completely honest about the situation. Don’t try and pretend that the company you worked for was anything other than your own creation. Instead, use this information to your advantage. Talk about how you created your own job and took initiative instead of waiting for a job to come to you. Talk about how you learned a great deal by building and distributing your own applications.Turn everything that might be seen as a negative into a positive.

Now, this technique of gaining your first experience might not get you a top level software development position, but it should at least help you get your foot in the door–which is arguably the hardest part.

If you like this post and you’d like to join over 5,000 others who have already become Simple Programmers, sign up here to get the SImple Programmer newsletter.


Why I am AGAINST Net Neutrality

No, I’m not saying this just to get a rise out of you, I am actually against net neutrality and here is why:

Net neutrality is this principle that says internet service providers should treat all data on the internet equally. I actually like this idea; I agree with it; I hope internet providers choose to treat all data equally. I agree that it provides greater freedom and opportunity to people using the internet and building businesses that utilize the internet.

But, I am not in support of sacrificing one entity’s freedom for the “greater good” of the rest of the world. Freedom is freedom. Internet service providers should have every right to be complete jerks and charge for the use of their services however they see fit.

chained Why I am AGAINST Net Neutrality

No matter how much I generally despise ISPs, I can’t in good conscious argue that we should limit their freedoms in order to increase our own. Why?

… Because, the two are the same.

Once you are willing to go down the slippery slope of taking away the rights of others in order to placate the masses, you are in real danger of completely losing the idea of personal freedom. Our individual liberties can’t be evaluated solely on how they impact other people.

If we refuse to let people or entities deal with their personal property in a way that doesn’t suit us, simply because it doesn’t suit us, we will quickly have the entire world at a standstill, because just about every action anyone takes could be considered to be harmful or undesirable to another.

Now, normally I avoid political discussions on this blog. So, you might think I’m being a bit hypocritical here—and to some degree I am—but, this political discussion is deeply rooted in technology, so I am giving myself a pass here.

So, in essence, I am actually in support of the idea of net neutrality, I am just not willing to join the mob in stripping away the rights of legitimate holders of personal property in the name of an ideal all the while violating another, overarching, more important ideal: freedom.

Don’t get me wrong, I’m not saying that the government shouldn’t ever regulate and prevent monopolies. I’m not trying to push a political agenda. I guess, I can just see myself in the position of owning a company that provides a service and being told what I can charge and how I can provide that service.

Perhaps it is because I am a landlord and I rent out property that I have a bit of a different perspective than most techies. When I hear about forced net neutrality,  I immediately think of someone telling me that I can’t charge whatever rent I want for a property I own, because it isn’t in the best interest of the people.

Damn the people! I am in business to make profit and so is every other legitimate business in the world. Comcast, Verizon and the rest of the internet service providers don’t provide internet services to make the world a better place and to equally spread ideas and give you personal freedom, they provide internet services to make a profit. And, if you are a shareholder of one of those companies, this is exactly what you want them to do.

I didn’t bust my ass working extra hours, saving money and living frugally so I could create cheap housing for the poor, I did it to make money. Now, that doesn’t mean I’m a heartless bastard—I give away 10 percent of my income to charity—but, no one should be able to force me to do it. If internet providers want to be dicks, so be it—it’s their right.

(Oh, look, I’m not the only one against Net Neutrality, someone wrote a book. Although, I admit, I have no idea how good it is.)

I’m not afraid

Even if the internet service providers succeed in earning the right to charge how they see fit for whatever level of service they provide to whoever they want and “destroy the internet,” I think there is still hope.

I have a bit more confidence in the internet than thinking that just because internet service providers choose to violate net neutrality principles it will spell doom and disaster.

Think about what would happen if Comcast started giving Netflix a high-speed traffic lane in exchange for a hefty fee. First of all, it might not be that bad. I don’t watch Netflix, but I hear that most of the world does, so for those people, there might be some real benefit in getting super-fast Netflix.

But, let’s suppose that people don’t like their super-fast Netflix, they’d rather have all their internet traffic arrive at the same speed. They’d like their torrents to download just as fast as House Of Cards. What then?

Well, if there is truly a demand for net neutrality internet providers, it will be profitable for Verizon to move in and start expanding their service to unhappy Comcast customers. They’ll promise completely neutral internet access and people will pay for it.

I don’t think that will happen though. I think that if net neutrality disappears, we won’t even notice it. For the most part, it won’t affect small businesses who don’t generate much traffic anyway, and for bigger businesses, it will be worth paying some extra fees to deliver content faster. It might even bring down the cost of internet service for the end-user. (Especially if it creates more differentiators in the market and thus more competition.)

Plus, let’s not forget that internet speeds are increasing all the time and technology is not going to stand still either. Sure, they are lagging behind in the US, but Google is putting some serious pressure on ISPs with its fiber offerings. You can only consume so much “internetz.” As speeds increase, bandwidth issues become less and less of a concern.

And let’s not forget about other technologies like Clear, who provides pretty fast internet wirelessly. Just because big ISPs already have cables laid in the ground doesn’t mean that other companies can’t lay new cables and that internet service can’t be provided wirelessly.

Overall, I’m not really all that scared of ISPs providing unequal internet service. Sure, I don’t like the idea. I would rather if they didn’t, but I think the pundits are really over exaggerating the effects.

To all those naysayers out there

As I am writing this post, I already know what the likely response will be: A bunch of flaming insults talking about how stupid I am and how I don’t understand the big IPSs are monopolies and that we have to protect the people against monopolies.

naysayers Why I am AGAINST Net Neutrality

How could I be against the internet being more free?

Well, it is pretty interesting because I have found that the people who claim to be the upholders of freedom the most seem to be the same people who secretly hate it. They hate that I could hold a different opinion than they do. They hate the fact that I don’t just go along with the masses and say that net neutrality is good and should be enforced—regardless of how we do it.

Like I said, if it were up to me the net would stay neutral. But, I believe more important things are at stake. I was against SOPA for the exact same reason that I am against the enforcement of net neutrality: we shouldn’t try to tell providers of a service how to provide that service.

But, like I said, this is just my opinion. I have pretty strong convictions about it, but I’m not beyond reasoning. I very well understand and accept that I could be wrong, but I’m not just going to assume I am just because everyone else on the internet says I am. And that is actually the beauty and real value of the internet, I can express my opinion freely, as can you. I don’t think Netflix streaming loading up a little bit faster than this blog post will change that.

For more infuriating posts about software development, technology and self-improvement, join over 5,000 other Simple Programmers and don’t miss a post.