Languages on boards

Why Are There so Many Programming Languages?

Recently, an outsider to the programming world offhandedly asked me a question: “why are there so many programming languages?”

This gave me pause for a moment.  When you’re steeped in the programming world, you just kind of take this for granted.  In that sense, it’s like me asking you right now, “why are there so many spoken languages on Earth?”

But I reflected a little further on it.  And I decided it would make good fodder for this blog—one that answers questions asked by newbie and aspiring programmers.  We answer questions about whether software engineers are happy and whether programmers should blog.  Why not this question?

So let’s look at why there are so many programming languages.

First of All, Are There Really a Lot of Them?

Before answering the question outright, we should probably look to quantify the vague claim “a lot.”  How many programming languages are we really talking about?

Is five a lot?  10?  20?

I went over to Wikipedia’s list of programming languages to see if I could give you a number.  And I can.

There are 68 programming languages… that start with the letter “S.”  I’m not going to count the entire page, but based on “S” you can easily extrapolate that we’re talking hundreds of programming languages.

And, depending on how you define “programming language,” one might argue that this understates the number out there.  After all, this list omits markup languages like HTML and XML.  (Some consider these programming languages, though I don’t, myself.)

So yes, there really are a LOT of programming languages.  Now we just need to talk about why.

Continue reading “Why Are There so Many Programming Languages?”

What is the Best Way to Learn C#? A Complete Introduction

Let’s talk about learning today.  Specifically, let’s talk about learning a programming language.  What’s the best way to learn C#?

For the most part on this blog, we’ve answered questions that non-programmers might have about the world of programming when they’re thinking of breaking in.  And while I suppose learning a programming language could fall into this category, it’s a little more specific.

But I wanted to examine this topic with a blog post for a specific reason.  I happened to Google “best way to learn C#” and find that something was consistently missing from the results.

Don’t get me wrong.

The results are helpful.  It’s just that they seem to focus exclusively on providing you with lots of links to various tutorials and websites.  And while resources certainly matter to your learning process, there’s a lot more to teaching someone a language than just “here’s a bunch of links, go do it.”

So today, let’s talk about learning C#.  I’ll definitely offer some suggestions for learning, tutorials, and reading, but I want to answer this question more comprehensively.  Here’s the best way, in my opinion, to go about learning this language that I happen to love.

What’s the Best Way to Learn C#?  The tl;dr

Alright, so here’s the short version.  The best way to learn C# is with a combination of an introduction to the language concepts followed immediately by practice in the form of exercises.

  1. Read about/watch a video about/learn about a new concept.
  2. Write a small program (or expand an existing one) in which you reinforce the learning with applied practice.
  3. Move on and do this with more and more concepts.
  4. Periodically revisit previous lessons to reinforce them.

After doing this for some time, you’ll have enough tools in your tool chest to begin writing actual programs that you maintain.

But before we can get into the specifics of that, let’s clear up some potential misconceptions around C# that you may have.  After all, it’s tough to talk about the best way to learn something when you’re not clear on what, exactly, you’re learning.

Continue reading “What is the Best Way to Learn C#? A Complete Introduction”

Software Engineers laughing

Are Software Engineers Happy? Yes, They Are, And Here’s Why

On this blog, we’ve taken on some questions that seem as though they’d be too general to answer.  For instance, we looked at what programmers wear to work and whether programming is hard.  And now, in that same vein, I’ll answer the question, “are software engineers happy?”

Of course, you must understand that this involves painting with a broad brush.  How could it not?

So the idea here isn’t to peg every software engineer on the planet, nor to speak in absolutes.  Rather, it’s about taking a look at the most common case for those of us in the field.

I’ll give you a short, quick answer.  Then I’ll list some of the things that detract from a software engineer’s happiness before elaborating in more detail on happiness factors.

Are Software Engineers Happy?  The Short Version

Alright, so here’s the short quick answer.  Are software engineers happy?

By and large, yes.  In employment survey after employment survey, software engineer scores high marks.  The combination of autonomy, pay, flexibility, and job satisfaction leads to software engineers being quite happy compared to people in other professions.  For instance, check out this recent survey from US news rating it the best job there is.

Of course not every survey out there puts it at number one.  But you’ll consistently find it in the top 5 or 10, especially when you factor in variants of the software engineer title.

So given that you see a pretty consistent ranking of the gig as a top job, it’s reasonable to conclude that software engineers are relatively happy.  Now, let’s dig into why that is.

Continue reading “Are Software Engineers Happy? Yes, They Are, And Here’s Why”

Software Engineers

What Makes a Good Software Engineer?

On this blog, we cover a lot of topics about how to break into programming.  So that practically begs us to answer the question, “what makes a good software engineer?”

Well, let’s answer that question today.

What Makes a Good Software Engineer: The Short Answer

In fact, let’s answer it briefly, right out of the gate.  This will set the stage for the more detailed answer below, where I’ll offer 13 different traits that will help you become a good engineer.

A good software engineer is someone who is not only competent at writing code, but also competent in everything else required to build, deliver, and ship valuable software.  A good software engineer is someone that their company can trust to help them make money.

Some people might disagree holistically, or at the margins, with this.  They might emphasize things like algorithms and data structures knowledge, mathematical aptitude, or prodigious command of programming languages.

But I would argue that those things make you a good computer scientist, which is an academic designation.

“Software engineer” is a job title.  And jobs exist to help companies grow, earn money, and deliver value to their customers.

Continue reading “What Makes a Good Software Engineer?”

Someone worried about programming being hard

Is Programming Hard? Here’s What You Need to Know

Is programming hard?

This is a question many non-programmers ask me.  This makes it rank up there with questions like, “do programmers work from home” and “what kind of education do you need to be a programmer?”  Inquiring minds want to know.

But unlike some of those questions, this one is actually pretty tough.  It’s a simple question, but the answer is very nuanced.

So let’s dive into it, in detail, and help you understand whether programming is difficult or not.

Is Programming Hard?  The Short Answer

So first off, let’s tackle the question with a short and direct answer.  This will set the stage for the remainder of the post.

Is programming hard?

Well, as consultants like to say, “it depends.”  Whether programming is hard or not depends on many factors, such as the specific type of programming and how you, as an individual, think.  So the short answer is that programming really runs the gamut from surprisingly easy to insanely difficult.

Think of this way.  Try answering some of these questions based on your experience:

  • Is playing basketball difficult?
  • Is speaking Portuguese hard?
  • What about driving a car?  Is that tough?

You can see why I’m hedging and saying, “ehhh… it depends.”

Continue reading “Is Programming Hard? Here’s What You Need to Know”

A set of keys for home

Do Programmers Work From Home?

In this post, I’ll answer the question “do programmers work from home?” This is a burning question in the minds of many. And it goes beyond programming and beyond IT. There are a few ways to answer this question so I’ll go through each. You’ll learn more about how programmers and anyone can work from home.

I’ve been on all ends of that spectrum in my eight years of working in software development. In the first segment, I’ll share my experiences. Later, we’ll look at how to find these opportunities. Finally, I’ll wrap up with other models besides full-time employment. Let’s get started with the first case…

Continue reading “Do Programmers Work From Home?”

Someone walking into work

What Do Programmers Actually Do at Work?

If you’re contemplating a career switch into programming, you’re probably wondering what it’s like.  And I don’t mean in the existential sense.  Rather, on a day-to-day kind of basis, what’s it like?

Well, today we’ll take a look at what programmers do in the office.

What Do Programmers Do at Work?  The Short Version

If you’re looking for an abbreviated answer or a summary, I can certainly provide that.  After all, I spent a lot of years working as a programmer in an office.  So I can speak at length and summarize quickly.

So what do programmers do at work?

Well, not surprisingly, they spend a lot of time programming computers.  But they don’t do so in a vacuum.  They also spend time doing activities that support programming, such as research, learning, collaborating with peers, collaborating with people outside of their group, and participating in the office as general workers.

For the rest of this post, we’ll look at all of this in a little more detail and talk about what it’s actually like.

Understand That Programming Isn’t the Movie Swordfish or Whatever

Before we go any further, you need to get something out of your head.  And that’s the idea that programming is any semblance of the way movies portray it (or hacking).

I might be showing my age by citing the (terrible) movie Swordfish, where, apparently, programming involves Hugh Jackman tossing around virtual cubes… or something.  But other movies show things just as ridiculous.  People wearing ski masks, banging on computers like they’re pianos in a jazz bar, bypassing the mainframe and accessing the router.  For programmers, this portrayal hews the line between exasperating and hilarious.

Forget all of that.  If you were to film professional programming, the result would be like a less interesting version of watching someone play video games.  Think more like watching someone make a spreadsheet.

None of this is to say that programming itself isn’t interesting.  It’s a lot like doing puzzles all day for money.  But it’s nothing like the way popular culture portrays it, from how programmers dress to how they interact with the computers.

Continue reading “What Do Programmers Actually Do at Work?”


Should Programmers Learn HTML?

Should Programmers Learn HTML? I haven’t thought about this in a long time, but I recently came across a programmer who didn’t want to learn HTML. He does mobile app development for Android and iOS. He has an opportunity to learn HTML and add it to his repertoire, but he won’t. I think everyone should learn HTML and here’s why…

You Can Get a Job Using HTML

A quick search on a job board like returns about 30,000 jobs using HTML. The salary range for those jobs is from $30k per year to $130k per year. There are even jobs that are not programming jobs where they want HTML experience.

That just goes to show what I think anyway: anyone and everyone should learn HTML. Not only does it enhance your career options, but it gives you an idea of how the web works. We all use the web, don’t we?

HTML is Everywhere!

You find HTML all over the web. The page you’re reading right now is HTML. If you want to see the HTML, use the “view source” feature of your browser. Usually, a right-click will get you there. Alternatively, you can use “Ctrl + U.” You may need to use “Ctrl + Click” or “Alt + Click” depending on your operating system.

Did you go cross-eyed looking at the page source? It can be daunting if you don’t know how to read it! But when you understand HTML, you know how to use one of the most powerful tools of our modern era.

HTML is so ubiquitous, it’s like how everyone in 1837 shoed a horse or something. Well, except that it’s much easier to learn. You don’t even have to leave the comfort of wherever you are right now! Seriously, let’s try it…

You Can Do HTML Right Now

That’s right! You can literally make a web page right now. Here’s how you do it:

1. Open a text editor. It needs to be a basic text editor like notepad or TextPad.
2. Type or copy/paste the following into the text document:
<h1>Hello, World!</h1>
3. Save the document as “hello.html.” You need to change the type of document from “.txt” to “*” in the save dialog.

Now find where you saved the document and open it. It should open in your browser, and you should see a good message in big letters!

Did you follow along? If not, that’s OK. You can still see how easy it is to write HTML. There are a few rules to keep in mind, but not many.

HTML is Like XML

We’re trying hard to kill off XML in software-land. JSON is taking its place in many ways. But it won’t go away for a long, long time. HTML used to have a lot in common with XML. It’s gone its own way since the introduction of HTML5. There are different standards because, frankly, it has a different use.

XML is for exchanging data in a structured way. HTML is for expressing the structure of a web page. The difference here is that XML has to express data types, namespaces, etc. HTML has a standard set of elements like

  • Input
  • Form
  • Label
  • Div

It doesn’t have to be everything to everyone; it only has to be everything to a web page structure! It’s like XML, but it isn’t. It’s a bit simpler.

I Want to Know More

OK, so here’s what HTML looks like:

Hello, this is some text inside a paragraph. I can put a link in the text like this <a href=””>awesome!</ a>. There are many other cool things I can do with HTML. I can make something <b>bold</ b>. I can make a list.
</ p>
< hr />
<h4>this is a list</ h4>
<li>item 1</li>
<li>item 2</li>
<large>this text is large</ large>
Inside another paragraph of text, I can put an image <img src=”” /> but that kind of tag is “self-closing.” Some tags are like that. Others can have something between including other tags. Some tags can’t go inside other tags.
</ p>

If you caught everything in this sample of HTML, you’ve learned a bit about a few element types and the basic structure of HTML. There are some rules. It’s a structured markup language. You can nest some elements inside others. Other tags are self-closing. When you learn HTML, you’ll learn about all the nuances. They aren’t tough to follow once you get the hang of it.

You Should Learn HTML

Yes! You should learn HTML. It’s easy to learn, and it’s useful. You’ll find many opportunities where you would have to know HTML. You’ll probably need it at some point, even if you don’t need it right away in your first programming job.

Suits that one might wear to work

What Do Programmers Wear to Work?

The posts that I write for this blog are aimed at answering questions non-programmers and aspiring programmers have about being a programmer.  This results in me answering some questions that seem perfectly natural.  But it also results in questions that surprise me.  “What do programmers wear to work?” is one of the surprising ones.

I can answer this question in a paragraph.  But I can also answer it with an entire post.  Let’s start with a paragraph.

What do programmers wear to work?

The answer is that it really varies.  Asking what programmers wear to work is like asking what people who work corporate jobs wear to work.

On average, programmers probably dress somewhat more casually than the average worker.  But there are programmers who come to work in suits and programmers who come to work in pajamas.  What programmers wear to work has a lot more to do with the company than with the profession.

But that doesn’t mean there’s nothing to talk about when it comes to how programmers dress.

Instead of trying to describe programmers at large, let’s break things down by the dress code.  Assume that you want to be a programmer.  Let’s look at each style of dress and where you might encounter it.

Continue reading “What Do Programmers Wear to Work?”

Full stack of cards

What is a Full Stack Developer, Anyway?

“What is a full stack developer” is a question that mystifies non-programmers.  I understand this because I run a content agency that pairs techies with non-technical editors.  The term comes up, and those not steeped in tech kind of squint at you if you say that and ask, “what….?”

What Is a Full Stack Developer?  The Short Version

So first, let’s give the short, direct answer to this question.  A “full stack” developer is a software developer with a general enough skill set to build all required components for a working piece of software.  They can handle the database, the programming logic, and the user interface, and they put it all together to deliver.

In a nutshell, that’s what we software people mean when we toss around this term.  But I can understand if you’re still scratching your head.  You’re probably wondering about some things now.

  • Why is it some kind of special thing that a software developer knows how to build all of the parts of the software?
  • Why is writing all of the software called “stack” and what does it mean for it to be “full?”
  • What is the origin of this expression?
  • How does one become a full stack developer?
  • Should you want to be a full stack developer?

For the rest of this post, I’m going to answer those questions.  When you’re finished, you’ll know everything you could ever have wanted to know about the term “full stack developer” and some things about software development in general, besides.

Continue reading “What is a Full Stack Developer, Anyway?”