Episode Summary

In this episode of Building Infinite Red, we talk about the importance of education and experience when starting out in software development and how things change when you move from making your products to running your business. From books and online resources to bootcamps and higher education programs, Jamon, Ken, and Todd share their stories, insights, and opinions for every level of professional.

Episode Notes

In this episode of Building Infinite Red, we talk about the importance of education and experience when starting out in software development and how things change when you move from making your products to running your business. From books and online resources to bootcamps and higher education programs, Jamon, Ken, and Todd share their stories, insights, and opinions for every level of professional.

Show Links & Resources

Episode Transcript

TODD WERTH: Today's topic is education. I actually don't recall what this topic's about. Ken, do you recall?

KEN MILLER: Yeah. Well, it's this question that kind of comes up periodically about developers and CS degrees and that kind of thing. I think there was a Twitter thread a little while back in Jamon's feed, because Jamon's feed is the only feed that matters.

TODD: That's a fact. Yeah.

KEN: Yeah, do you remember who that was, Jamon?

JAMON HOLMGREN: Yeah. The question was, "I have 10 years experience developing sites, but I have no formal education. What are your thoughts on experience versus education? Been thinking of getting a front end development tech degree from Treehouse, but I'm not sure if it's worth the time and money." Yeah. That is a question that does come up fairy regularly.

KEN: For that specific question, I think the answer is no, it's probably not worth it, right? If you have 10 years of experience, and you're going to go take basically a practical degree, don't bother.

JAMON: Right.

KEN: But there are definitely nice things about getting a real CS degree, but getting a job is not necessarily the best reason to do it.

JAMON: Right.

KEN: If that make sense.

TODD: I would totally agree with that. Well, just to start out, the three of us, Jamon nor I have finished college, nor do we have any CS degrees. I learned to program on my own when I was a child, probably started when I was 12. And then I started programming professionally when I was about 24, and then I learned basically on the job.

Ken went to Harvard and got a CS degree there. Jamon, you are similar to me, right?

JAMON: I was pretty similar to you, yeah.

TODD: Yeah. So what I usually tell people, A, now, when I'm hiring people and I'm not representative of everyone, so it's quite a bit different, I do a cursory glance of their resume, maybe. That's less relevant to me than what they can do.

In my opinion, developers is a portfolio job, which means the work you've done is hugely more important than any kind of education.

Now, obviously if you do have a CS degree, I do find people want CS degrees, they understand some concepts that you maybe don't use day-to-day, and when they do come up, they have a much better understanding of that. Sometimes it's easier to teach them new ideas, because they have the analogy in their mind already. So it's definitely worth it.

I would say, my short answer and I'd love to expand on this further in this podcast, but my short answer is you need to learn what you need to learn in order to produce work product, which means develop software, develop websites, develop apps. And everyone has a different way of learning. For some people, school is the best way. For me, school always bored the hell out of me to be honest, and it wasn't the best way for me, but there's no exact right way for everyone. It's just however it works best for you.

JAMON: Yeah. And I think that part of this is how much access and opportunity you have, because certainly college is one fairly proven path toward gaining an opportunity to access the job market, to get enough skills that you're hireable out of the gate, and then to access the job market and actually get a little bit of exposure, whether it's through an internship or something like that.

So that plays into this as well, if your dad was a software engineer or something, and he has contacts that you can talk to and maybe get some opportunities, then maybe you don't need that, maybe you don't need to go down that road.

But there are few other factors here as well. Some of them are personal goals, like what type of programming, like Todd was saying, what type of programming you want to do, how much debt you're willing to take on, how much you can take on. And then also, in some cases, very specific cases, the prestige of the university can be a factor because it certainly opens doors for Ken that Todd and I don't have.

TODD: I do want to interject real quick before you jump in, Ken. Going to university has many, many benefits that have nothing to do with getting a job, and those are a super valuable if you have the opportunity. They're worth it. But specifically about a job is what I was talking about.

KEN: As a life experience, college is great. If you have the opportunity, you should probably do it. Getting a job as a programmer per se is not a good reason to go to college in my opinion.

Now, if what you want to do is get a job at Google, or one of the places that is well-known for preferring CS graduates, especially from elite schools, then you should do that, you absolutely should do that. You're going to have a much, much, much harder time doing that.

But also, more to the point, Google has I think fairly reasonable case for it in certain ways, because they are actually dealing with the high level intense CS concepts more than your typical programmer job.

TODD: Correct.

KEN: Now, I think where the problem comes in the market is that if Goggle does it, then we should do the same thing and then we'll be successful like Google. And the vast majority of companies out there do not need that.

And I can also definitely tell you, from my own experience, from the people that I've watched, is that getting a CS degree, they're teaching you the fundamentals of how computers work. In Harvard's case especially. They're very much on the theory stuff. But even a more typical CS degree is very much about the background, the hopefully unchanging fundamentals, and not so much how do you design a build system. Todd?

TODD: Yeah. I want to rant a little about a CS degree. CS, I'm sure all of you know is computer science. It is really that, it's computer science. Scientists don't make things. They discover things, and they ponder about things.

For example, a physicist and a chemist may work together to make some sort of new alloy, but they're not going to design an airplane. That's what engineers do. If you get a computer science degree, you learn the science of computers. You could actually get a computer science degree, and correct me if I'm wrong Ken, and not learn to program at all.

KEN: That would be pretty rare. You do have to know some programming in order to do a lot of the things that they teach you-

TODD: But you could do like abstract programming that doesn't actually work. Like, say you're developing an algorithm. It's not-

KEN: Yeah. I would say that would be pretty atypical, but there's definitely classes that don't require a lot of coding.

TODD: I'm exaggerating to make a point.

KEN: Some of it is straight up math. Yeah.

TODD: Right, which is different than engineering.

KEN: Well, and a good engineer should understand the science obviously. Yeah.

JAMON: And I think one of the things to know is that, in my career certainly, and I'd like to hear from both you, Todd and Ken, I haven't noticed a huge market difference between the software engineers that I work with that have degrees, versus those that do not. I often don't know which of them have degrees and which do not. It's not always a strong correlation between their ... or it hasn't been a strong correlation in my career with performance.

I think there's some characteristics that are positives for people that come from a CS degree background versus others who maybe come from a bootcamp background, or Todd and myself maybe learned out of a book basically and experience, but in my experience it's not something that is ... there may be differences, but they're not significant.

TODD: I think it depends on the situation. When you teach people you notice it more. For experienced people, people who have a decade under their belt, no, there's no different. For new people, someone who comes out of school with a CS degree will understand concepts, and I think it's easier to teach them to be honest, in that way.

Real quick, I personally started ... well, I started programming privately, but that was just me programming games and that kind of stuff, stuff I enjoyed personally. But professionally, I started building software. So I started out as a builder, a maker, over the years formed myself into an engineer, and then during that, got interested in the CS stuff and learned that stuff too. So I got to the same result, just in a different path.

KEN: That's totally true. You can absolutely learn all this stuff on your own later if you're that kind of person. I think what the reliance on CS degrees doesn't really take into account, is that 90% of programming out there is essentially business automation, for a loose definition of business, but it's basically business automation.

I mean, yes, okay, there's sort of a sector on high performance computing, or scientific simulations. Honestly, the one that in some ways benefits the most from formal education, believe it or not, is games, because there you need the linear algebra and the harder math, and your performance constraint in ways that mean you're more likely to be coming up with novel algorithms than you are in your typical business program. Jamon?

JAMON: It's surprising how rare it is to encounter those types of situations in typical applications, like mobile applications and web. You just don't really run into it.

KEN: Right. So, the kind of people who are going to excel at your, like I said, very typical business automation, style programming, user interface design, et cetera, et cetera, are actually going to be people who sometimes were not computer people before, because they're going to have more connection and empathy with the target users. And that ends up making more of a difference to the success of software projects in many cases than your facility with the computer itself.

TODD: Yeah. Let me give you a real example from myself, because I started out very practical, and then later got interested in the CS concepts and stuff. Just purely for my own interest and stuff, and that did help to a point in my engineering career, but I did a project circa 2001 or something like that, and we would display, as a website, and we would display a map for the user, and they click somewhere else on the map and we had to calculate, based on the pixel difference between where we knew they were and where they clicked, the difference in direction and distance from the original spot.

Now, this required spherical geometry, and the earth actually is not a sphere. It's a little bit like a football actually, to a slight extent. In this case, someone who had a more CS background may have jumped into this easier. I actually had books on my shelf, like college algebra, and college geometry and stuff like that, and I would review these things.

And I learned how to do it. It was a successful project and it was very fun, but that's an example because I came from a practical place I had to look that up. Now, on the flip side, I've worked with people with PhDs in computer science, and no offense, bless their hearts, but they would work for two weeks and accomplish literally nothing. And then you'd ask them, "Was that done?" They were like, "I didn't know it was urgent." Well, it was an hour task. That's two weeks ago.

And I think they're on a different academic time, because they spent so many years in school, it's just a difference.

KEN: Which is, again, not to denigrate the usefulness of them. They're just useful in very specific circumstances and not as general programmers. Jamon?

JAMON: I kind of see it as, to use an analogy, like when you're lifting weights, if you lift weights in a way that is very functional, they call it functional, where it's almost like you're lifting a box or ... yes, Todd?

TODD: Jamon, for our listeners who may not be familiar with this concept, can you explain what lifting weights is?

JAMON: It is this theoretical thing that supposedly some people do.

TODD: Can you do it inside of your own home?

JAMON: I do now. I built a gym actually. But yes, you lift weights for health. And one of the ideas is that you do this sort of functional strength, where it's something that actually builds up the muscles for lifting boxes, and carrying children, and moving things. So it's very much like you're doing those types of movements, but just with heavier weights. It just makes you stronger in those ways.

And then there's other things where you're isolating specific muscles in a way that you would never really do in a day-to-day basis. And university can sometimes be more like that, where you are exercising those muscles, you are making them stronger, but you're not doing it in a way that necessarily replicates what you do in real life. And I think both are necessary.

If you just do functional strength training, it will get you so far, but you won't ever hit certain muscles because, like we talked about intense performance or whatever, you might not actually be using those aspects of your brain in a day-to-day basis. But they are good to have for when you need them. So I think that's a decent analogy of what we're talking about here.

I think that one of the criticisms that I've had of some of the higher education programs, is that they don't do particularly great job of replicating the real world of what people will actually be doing once they actually get into the job market. You can create a binary tree algorithm, but can you move this button over four pixels to the right? Which is often your first task when you get to work.

TODD: Yeah. And I would say that it really depends on the person. In an idea world, if money is no constraint, time is no constraint, yeah, of course I would love to go to university and stuff. But on the flip side, I'm a very practical person and I like to build things, I like to make things. So maybe I went for a few years, but maybe if I would have went that route I wouldn't liked it as much. I would have preferred to just jump in and start getting things done.

I think for me ideally was 18, I started doing it, actually doing it for three or four years, and then go to university for maybe two years, and enjoy learning all the concepts I didn't learn. That would have probably been pretty cool for me.

JAMON: I realized we're kind of leaning more heavily on the criticism side of this, but one of the criticisms of universities is that they optimize for rewards, like extrinsic rewards. Like, I got this degree, I got this piece of paper, or I did what was necessary to get an A. Where learning to accomplish something to actually expand your mind is a little bit of a different thing.

When I started my business I needed to build a website, I had a website to build, and I didn't know how to do it. For me, when I was learning from a book, it was very, very applicable. Like, okay, in order to make a menu, I need to know how to do these things, and it was very, very applicable. Very, very directly applicable.

KEN: Well, I'm going to make the positive case ...

TODD: Please.

KEN: ... for going in and doing it. One is, fair or not, it does open doors.

TODD: Correct.

KEN: Especially if you're in a good program, but even if you're not, it is used as a hiring filter in a lot of places. I think it's wrong but it's true. That's the very practical sort of level. But to be honest, there's definitely things that I learned there that can save you trouble.

I mean, I think they said that what makes a 10x programmer is that they know what not to program. So for example, even the theory class. The theory, computability theory, computational complexity, these sorts of things are more valuable than you might think in certain ways.

For example, you're at your start-up. Your boss says, "I want the optimal route to plan on this map. I want to be 100% guaranteed the best route." And you can say, "That's the traveling salesman problem, and it's actually a known hard problem," for example. And it's the kind of thing where it can steer you away from harder problems and towards easier problems. And in engineering frequently what you want to do, you're like, "Let's find a good heuristic instead of trying to solve this optimally."

JAMON: It may not give you the answer, but it will give you a framework around the problems that are out there, and the classes of problems that are out there.

KEN: Yeah.

TODD: Yeah. And I really appreciate that from people who have a higher education than myself.

While people were talking, I was thinking of this story. I interviewed for this job, and this guy was asking me technical questions, as they do, and he was a young guy at the time. I was probably 34, he was probably 10 years younger than that or more. And he asked me a question. I don't remember what it was the exact question, but basically he wanted me to accomplish a task, and what he was looking for is how I would technically approach this problem.

But I've been an engineer for a long time, and I know what's really important, and I know it makes a 10 times engineer, which is often not actually programing that. So I started off by challenging the fact that he even needed this at all. And logically, he didn't, and he couldn't really explain why he would, so I gave him additional other options that would make this application or this software work much better.

Not the answer that he was looking for. But it was the real answer. I used to say a saying all the time. I don't say it much anymore, which is, "There is no code as fast as no code." So in this case, I was just removing his entire problem from him.

KEN: I would say it can help you avoid reinventing certain wheels, which might mean that you don't get some amazing solution, because you weren't ignorant enough to know that it couldn't be done. Everyone loves those stories, but 99% of the time that's not how the story goes.

And in fact, to the point, I don't know if we're ready to segue into the business conversation we probably we will in a minute, but none of us have any business education. And I'm starting to wonder if it would be worth it to go get like an EMBA or something, so that we're not reinventing so many wheels.

I don't know if we're ready for that conversation yet. Jamon, you wanted to say one more thing?

JAMON: I have a bunch of other things to say, but I'll intersperse them here. I think that one of the things ... well, Todd actually alluded to this earlier, but the network that you get from going to university for four years with often some of the same people throughout, you get to know them, you do projects together, they have opportunities. A lot of them go on to be quite successful. And being connected to those people in that way is something that lasts for a lifetime. And that's definitely something that should not be undervalued. That's a big advantage, that's something that I did not have.

In fact, the only way for me to access a network like that was through ... well, I shouldn't say the only way, but the way that I accessed a network like that was through open source later.

TODD: It's true. There's a lot of overeducated crappy engineers doing very well out there. It's true.

KEN: It is true.

TODD: I mean, it is really true.

CHRIS: I was just going to add too, it's fascinating when we have this conversation today. It seems like it's been increasingly becoming more popular to question whether to go to school, or rely upon the tool. So what is it about today that allows us to even question the path forward, that maybe we weren't able to in the past?

KEN: We're going to queue that clip from Silicon Valley now.

TODD: Yeah. I think it has nothing to do with our particular industry, or development, or any of that stuff. I think it's just because the cost of university education is so extreme right now, that you naturally have to question if it's worth such a huge burden.

It wasn't that way for me in the early '90s. I could work and pay for my own college at that time, which I did. That's not possible these days.

JAMON: I'm going to agree and disagree with Todd there. I think the cost is definitely a factor, but I also think that this industry is a big factor in that we don't have ... my brother-in-law is a mechanical engineer. He couldn't just go and start mechanical engineering. He can't go out there and just do that.

TODD: He could. It's just governed by law.

JAMON: Yeah. You have to be a licensed engineer. It's a very-

TODD: But there's no reason he couldn't do that if it wasn't for laws.

JAMON: There may be a path to becoming a mechanical engineer that doesn't involve university, but it's very hard. I at least know of an architect that did it without going to university and getting a degree.

But that is something ... we have a lot of these professional, professions actually have degrees that sort of ... they're barriers to entry. And in order to get through that, the accepted path is to go through universities. Ours does not have that. We can start building websites, or building whatever, just by convincing someone to pay us to do that.

KEN: I think there's two points actually. One is part of the disconnect between mechanical engineers and software engineers is that when mechanical engineers fail, people die.

JAMON: That's true.

KEN: In many cases. That's sometimes true for software engineers too, but it's more true with mechanical engineers. And as a result-

JAMON: My brother-in-law works at a plant where if he screws up, there will be hydrogen peroxide blowing miles high in the air.

KEN: Yeah. So the stakes are often higher.

JAMON: Yes.

KEN: But also, if you want to be a serious chemical engineer, there's a lot of capital requirements for any of the things that you're doing, apart from the safety concerns, and that's very real. You're not just going to work on your own because you can't get them, whereas the capital requirements for being a software engineer are extraordinarily low. The access to education materials is extraordinarily high. And you can just try in almost literally anything that you can find out there for education material, you can try with a $500 computer.

So there's so many things about the technology world that are in many ways unprecedented, and that's why you're seeing this massive sea change in the economy as it starts to take over more and more of it.

And one of our missions here is to help more people in more places be part of that. So getting the message out that although CS degrees are helpful if you have the opportunity, go ahead and do it if it interests you, but it's not necessary if you just want to be part of this.

JAMON: Yeah. And one of the things that is very apparent, is that there's a lot more resources available now online for learning. You don't have to go to college to get the education because it's often on YouTube, or you can look through GitHub. There's all these resources, there's online courses. These are things that are very valuable, and they're self-driven.

When I first started wanting to learn Objective-C and building iOS apps, I bought an iPad 2 and I went to iTunes U and started watching the Stanford courses on there, and following along with those. So I was able to basically watch Stanford lectures for free, and follow along, and do what they were doing.

That was tremendously valuable to me. And all of those resources are very interesting. What's very interesting also is that very few people actually take advantage of this. Everybody with an internet connection essentially has access to these, to the same thing I did.

TODD: Which is pretty much everyone in the United States at least.

JAMON: Right. And yet, it's a very tiny fracture of a percent that actually take advantage of that.

TODD: Well, I would like to, for those of you who have this question and don't have a lot of opportunity for various reasons to go to university, I would give you my kind of recommendation. I forget who said this, I'm not going to attribute it to anyone because I don't remember who it was, but if you want to be a writer, write. If you want to be a poet, write poetry. When you've written a million words, you're a writer. When you've written 100,000 words, you're a writer. You have to write.

You'd be amazed how many people want to do something and actually don't do it. In our industry, it's very possible to be a very successful software engineer by just doing it. But even, we mentioned mechanical engineering which does have some legal constraints for sure.

But I don't know if anyone's ever seen the movie October Sky. It was in the late '90s. It was about a NASA engineer called Homer Hicksam (Homer Hickam) I think. He was a son of a coal miner and he loved rocket engineering. And he just did it, and he did it, and he did it, and he did it, and eventually without ever having an education, he did it for NASA, and he was a very famous and successful engineer at NASA.

So, I don't recommend that route for such things, but it is possible. And I don't care who you are, or what profession you're in, if you just spend a crap load of time doing it, you're going to rise above everyone else.

Another great story I have, I read this book. It was about this guy who was really into etymology. Entomology, not etymology which is the study of the origins of words. Entomology, which is the study of insects. He came from a very poor family, and he was in Alabama, and he got into the University of Alabama for biology. I believe he got a scholarship because he couldn't afford it, but the day one he showed up, he went to the head of the biology, the college or probably ... I don't know what it was, but wherever the college of biology is. Ken will correct me. This shows my education here.

Anyways, he went up to the head and he said, "For the last two years I've been cataloging the ants of Alabama." And no one had ever done this. So on day one he was put in charge of something very important at the university because of this, simply because he just did it. He didn't ask permission. He just did it.

So if you want to become a developer, regardless if you have the opportunity to go to school or not, you just have to start developing. Get into open source, publish stuff, start creating your portfolio and just do it. I'm not going to recommend this at all, but if you dropped out of high school at 16 and started programming and put a lot of work into it, by the time you're 18, 19, you're going to have a high paying job. That's a fact.

Don't do that, kids, but-

JAMON: Yeah. If Cedric's listening to this, stay in school.

TODD: But you totally could do this, but it does require a lot of ... a lot of times people go to the university and those kind of paths because they don't have the kind of internal-

KEN: And by the way, if you're that person, you probably already know.

TODD: I don't necessarily think so, because-

KEN: I mean, if it's flowing out of you so much that you just can't stop doing it basically, that's usually the kind of person who makes it that way.

TODD: I agree, but I think-

JAMON: Well, that was me at that age for sure.

TODD: I think a lot of those people don't know that it's possible, because they don't have an example of it being possible.

JAMON: That's exactly right, and that was actually me at that age. At 16 I was coding every day. Every day I would go home and that's what I would do. I mean, I'd do homework on the bus. I didn't do it at home. I coded at home. But I had no role models that were programmers. Well, I had one but he worked in San Francisco and he had been to college, and I thought that was the path.

So I didn't really have that sense. And I was doing some pretty complex games and stuff, and figuring things out on my own because I didn't have internet at that time.

TODD: Yeah. Well, back in my day I had a book budget, because the only way to learn was from books. There was nothing online, because there wasn't online. I had a book budget where hopefully I could buy a book every couple of months, add to my collection.

But anyways, if you get nothing else and you're aspiring to be a developer, I give you permission just to do it.

JAMON: Another option is code bootcamps. We actually have at least one, maybe a few others that have been to bootcamps here at Infinite Red, and we found them to be quite valuable for getting people up to speed on frameworks, on languages, on sort of the technical skills, and just getting the familiarization and understanding that they can learn these things. Often it doesn't teach them everything, but it gets them the confidence that they need to move forward with it.

I think bootcamps are definitely an option, and there's many good ones. We've worked with Epicodus here in Portland, and there's others as well.

KEN: They're especially helpful I think for people who have some kind of technical or quantitative background but just need to learn to code.

JAMON: Right.

KEN: Per se. Yeah.

JAMON: Yeah. It's a good way if you're switching to a second career, or something like that.

Another one that I'm actually a really big fan of is Austen Allred's Lambda University. Now, this one's got a really unique model. It's a little more intense than a bootcamp I think. It's a fairly solid higher education option. They have a lot of success stories coming from it. But one of the really unique things that Austen's doing there is they do not charge tuition upfront. Essentially they will take a percentage of your income if you make above, I think it's $60,000 or something a year.

Once you get a job that's above $60,000 a year, they'll take 17% of it for up to two years, and there's a cap. Like, $30,000 or something.

TODD: That's amazing. I love that.

JAMON: Yeah. And if you never get a job in that range, then you never pay it back. The debt is forgiven.

TODD: That's a really cool idea. I love that.

JAMON: Yeah. Yeah. It really is great. And apparently the financial model's been working for his university. It's an online one so it's very accessible and they're actually finding that they have a much more diverse student body because of the fact that someone who doesn't have a lot of means, doesn't have a lot of support, they can go to school online, they don't have to pay anything upfront.

They're even good about trying to support them financially during the time that they're in the university. It's a really great model. I'm a big fan. Lambda School or Lambda University I think it's called.

TODD: We'll put that in the show notes.

JAMON: Yeah. And Austen's doing a good job with that. He also, if you follow him on Twitter, he's got some really great thoughts on education. I like what he tweets about.

TODD: Yeah. I guess in summary there's many ways to get there. If you are a maker, like I always was ... even when I was a kid I constantly made things, I think my path might be an interesting idea. If you have the means to go to university, by all means do it for sure. If it's going to be a huge financial burden, I would definitely give it some serious thought before incurring that burden.

CHRIS: I'm curious how you approach education "Once you make it." What does it look like on a daily basis to learn new things, be challenged by new things, or even challenge the people that you work with as well?

JAMON: All you need to do is listen to this podcast religiously.

TODD: It sounds ridiculous but it's absolutely true. Continuing education. That's a good one. Truthfully, for a software engineer, if you can't teach yourself every day, you're going to have trouble because whatever you knew last year ... I've been doing this for 22 years and I think that number changes every time I say it. I started in '96 so whatever that comes up to.

JAMON: We're software engineers. We're not very good at math.

TODD: Yes. That's a fact. But you have to learn new stuff. The stuff you worked on two years ago is not what you're working on today. It's constantly learning new stuff. Now, you learn certain patterns and certain ideas that you use over and over again, and you start as you get a lot of experience you start realizing how we're kind of just redoing the same thing over and over for the last 40 years.

JAMON: Yeah. Ken, didn't you do an exercise where you learned a whole bunch of languages, and you wrote the same program several times?

KEN: Yeah. It was fun. I had fun with it, and then it literally burnt me out of programming for a long time.

JAMON: How many did you do?

KEN: I got through ... I don't know. 20 or 30.

JAMON: Wow. Yeah, so that's what Todd's talking about, is this sort of recurring theme that you see over and over.

KEN: Yeah. And after a while it was just like, it was the same approach over, and over, and over, and over.

JAMON: It became a lot easier to learn your 20th and 21st and 22nd. Yeah.

KEN: Yeah. I always recommend people learn three or four languages, just for their own edification. A lisp, a low level of imperative language, C, C++, even Java, a dynamic language like Ruby or Python.

JAMON: And then something like Haskell or Elm or something.

KEN: Or actually something like Prolog or Erlang is actually probably more interesting than ... Haskell's great, but more interesting than that because it really makes you think about it in a different way. If you learn those, you can learn anything at that point.

JAMON: I think one of the things that really helps me is I have this insatiable curiosity about concepts and computer science. I love reading about it, I'm on Twitter a lot and that's a good place to source new information. You can watch videos.

Other people learn in different ways. I know one of our engineers will troll through GitHub. He'll actually jump into a package.json file which we-

TODD: I don't know if, "Troll" is the right word, but yeah.

JAMON: Well, trolling as in fishing. And he'll look at the dependencies of a particular well known thing, and look at what they use, and then go look at those and see how people code.

It's a very cool way to learn. Other people, they'll learn by pairing with other programmers, they'll learn obviously by experience. Some people read books. We have one of our-

TODD: Watch videos.

JAMON: Yes, watching videos. One of our developers decided to learn ... this is Darin Wilson. He decided to learn Ecto, which is the database layer for Elixir. He decided to learn that by writing a book about it. And apparently that's been quite educational for him. He's learned a ton in teaching.

TODD: Yeah. Don't do that, kids. It's a lot of work. That's kind of a lot about software engineering and that kind of stuff, but we're also, on the other side ... and we probably lost all the entrepreneurs by now, so I guess we should do this first. But on the other side is education when it comes to being an entrepreneur, running your own small business, running a larger business, that kind of stuff.

JAMON: I learned first I would say by watching my dad. He was a small business owner, so I learned some basics there. I did know quite a few small business owners, and I did talk to them. I would go out to coffee with them or whatever, and just ask them questions. But it was very much a learn as I go type of a situation, learn as I had to.

How do you do payroll? I had no idea. I hired a bookkeeper who taught me how to do payroll and did most of it, which was nice. How do you market? I had no idea. That was a whole thing that I had to learn. How do you do sales? I mean, I just plopped myself in front of people and tried to do the best I could, and tried to learn from it. That's probably not the way I would recommend going though.

TODD: We did engineer our sales process by the way.

JAMON: Once we merged companies, then Todd and I started doing sales together, and we had a much more engineery approach to it. It was good. Actually have a feedback loop, and we would try to build our experience over time.

I have read some business books, I've watched some business videos, but for whatever reason software engineering, education has always been more ... I guess got more traction with education on that side. With business stuff that always seems so abstract and not directly applicable.

KEN: I'm definitely at a point where I'm feeling like I could use some formal education honestly. The MBA is not what it used to be in terms of guaranteed high paying work. Even elite MBAs are not what they used to be in that regard. But I wouldn't downplay the value of the network building that they bring. But what they can't teach you, what no school could teach you, is what it's like to stare at your bank account and wonder if you're going to make payroll this month and how you handle that.

I mean, it might mean that you know a good banker who can help you, but it doesn't teach you what that feels like. It can teach you about negotiation, but it doesn't teach you how to actually sit at a table with somebody who's got a lot more money and power than you.

There's a reason that even regular business schools prefer that you go out and work some place for a little while before you go there. And I think that the EMBA route, if you're going for formal education, is probably a pretty good one, because then you have really embedded yourself. You have a very felt experience of what these things are like, so when you go to that negotiation class, or that finance class, or whatever, you get it. It's going to land someplace for you emotionally, that it wouldn't for a kid out of school.

JAMON: What's an EMBA?

KEN: Executive MBA, meaning a lot of the business schools will offer these programs frequently, nights or weekends, even at a high level, so it's right where you as a person who already runs a business can go and fill in your skillset.

TODD: Interesting.

KEN: And hobnob with other people like you. Yeah. And they're not cheap.

TODD: Yeah, that makes sense especially if they're geared towards executives.

My path was way too long. So, if you want to do it fast don't take my path, but this is my third company and I feel like I finally became a business person on my third company. That's a long time, and that wasn't three companies in three years. That was three companies in 15 years.

I definitely wouldn't go my route. I think one of the things ... I mean, there's different aspects of business, right? Ken alluded to some of them. Financing, super important. If you're not making money, if you're not negotiating good deals with your vendors, or employees or whatever, if you're not keeping it cashflow where you can pay payroll, you're sunk, so that's very important.

The other thing is, your management and leadership skills. As you grow, you're going to have a team, so that's very important. That's not something you super easily learned from a book. I think even things like accounting theory ... Ken, I don't know if you want me to share this story. Well, I'll just say it and we can cut it if you don't want it.

This is kind of a funny story. When Ken and I first started this business, this was my third, but this was Ken's first business. And we were going over our accounting and he was telling me all about accounting theory, and he knew it very well, but I don't remember what it was, but it was something like I said, "We should get our P&L," and you had no idea what that was. It's a profit and loss report.

KEN: I don't think that that was what it was. I don't think that's what it was. I don't remember what it was, because I knew what a P&L is.

TODD: Maybe it was AR, account receivable? It was something very basic.

KEN: Well, we had a long running argument about cash verus accrual accounting as I recall.

TODD: Right. So regardless of what it was, and I don't mean to insult Ken whatsoever, but that's actually not uncommon. My wife's an accountant and she was trained at university for that and then she worked as a corporate accountant for a long time and worked her way up to a fairly high level.

The day-to-day, just like in programming, you learn the concepts but once you hit the real world, the real world's so much different than anything. And I think that's true with a lot of ...

KEN: I'll go into that. I was like, "I think we should do accrual accounting," and Todd's like, "I don't think so." I'm like, "Well, no. I really want to be able to ..." the benefit of accrual accounting is that you can see profit versus cashflow and it sort of gives you more information, but it's way more work, way more work. And if you haven't done it, you don't know that, so we are still a cash accounting.

JAMON: Yes.

TODD: Is it more work, Ken?

KEN: What, accrual?

TODD: Yeah.

KEN: Much.

TODD: Is it way more work?

KEN: Much, much, much more work. Yeah. And that's something I don't really like very much.

JAMON: One of the things I did well when I started my business was I forced myself to do a monthly budget. And I was doing this for my personal life too, so I just used the same skills I had there to do a budget for the business, which was much easier because I wasn't buying diapers there generally. There wasn't quite as many transactions-

TODD: There's a joke in there somewhere.

JAMON: Yes. There weren't as many transactions and stuff. But it was actually really great because I was able to keep a very close eye on where we were in a cash basis obviously, and then I did have accounts receivable system that I could look at to see what kind of money would be coming and do some forecasting and stuff.

We've carried that forward to some extent here at Infinite Red doing the budgeting. We got away from it for a little while, but we're going to be going back and do it because it has been very helpful, even though you in some way feel like you're doing kind of double entry.

TODD: Yeah. I think, gosh, business education and experience, you really have to have both. You have to study in some form, and you have to have experience. It's really challenging to be honest, compared to something more straightforward like becoming a designer or an engineer, just because it's very nebulous and very human oriented for sure.

JAMON: And there's so many ways to do a business right, and there's many, many, many more ways to do it wrong. If you just follow a formula, that's not necessarily going to work. There's a lot of variables in business.

TODD: And people tend to do things the way that they're comfortable with, or the way they're familiar with. It's kind of funny. My wife, she's actually a small business person now, but she's an accountant by trade as I mentioned. In accounting, they use spreadsheets to a ridiculous amount. And when I say ridiculous amount I mean they're super familiar with spreadsheets, very advanced spreadsheets, so if there is a task, they throw a spreadsheet at it.

Now, as a programmer, my first thought was database. So, my first company, I did my accounting like a database, which probably wasn't great but it's what I understood. And that's what people do, they apply. So my wife Heather and I, sometimes I've went there and said, "That's cool, but you know, if we use a database this will be much easier." And I set her up with a great product called Airtable, and she switched from a spreadsheet for that particular thing to the database, and she loves it.

And then looking at some of her spreadsheets, for example, as a programmer, if I needed a particular report for finances, I would assume I'd make a report and I would use a system to make a report and stuff. But for her it's super common to extract data from multiple sources, stick it into a pre-made spreadsheet and have the spreadsheet be the report. This is what accountants do all day. It seems more manual, but it's actually faster and more convenient.

So as a person who's not educated, maybe not educated in starting a small business, or taking a long route like we do, you'll find that you're doing things that you know how to do. It may not be right, but you kind of get them done. And it's good to look, at some point, when you have time, to look how the professionals do it, so you can do it more efficiently.

KEN: Well, and I want to piggyback on that, which is that one of the harder things that we've learned is to do some things manually, that there's real value in doing things manually and personally, and not trying to automate it.

Like Todd says, when we think we need a report, the first we're going to go like, "Hm. We should write a report so we don't have to do it ourselves over and over again." Wrong. Wrong, unless you're-

JAMON: We need the education-

KEN: Unless you're Ford, unless you're a massive company that has already a very dialed in process, automating as a small company is sometimes counterproductive. Not only does it take a long time, a big time upfront, but then you are locked in and can't change it. You can, but now all changes are expensive. And two, there's real value to human eyes going and looking at the stuff and compiling it.

And that was very hard for me to learn because, like a lot of people, I got into computers because I'm lazy, and I wanted the computer to do all the work for me. But there's no substitute for human eyes on the problem, in many cases.

TODD: It's funny, because we're all engineers and designers, the way we do reports at work is we have an artificial intelligence chat bot in Slack that produces the reports for us. That's such an us way of doing things, it's hilarious.

JAMON: If it's okay, before we wrap up here, I'm going to bring this back to universities for a second. I think this is actually a really important thing to get across to people who are considering that path. If your state offers ... here in Washington State it's called Running Start, but essentially the ability to go into a small community college that's nearby your high school, and get your first two years done for free. The K-12 system actually pays for your college, for the first two years. That's really helpful, and there's really no reason not to do that. That's a great way to get started.

Secondly, if you are going to go to a university, unless it's something like Harvard, or maybe Stanford, you should really avoid private universities, especially for-profit universities. Those are really terrible. You really don't want to go that direction.

KEN: Well, I want to draw a very clear distinction between private and for-profit.

JAMON: Yes, of course.

KEN: There's a lot of very good private schools. If you can afford them, go for it. A lot of them are really great, great education. for-profit schools completely different.

JAMON: Todd and Ken, I'm not sure if you know this, but one of the things that ... well, you do know this. One of the things that for-profit universities do is they prey on disadvantaged students and stuff. They'll go and sign them up. And they actually did that at my school and I was actually signed up and accepted to one of these universities, which would have been an incredibly expensive education. I'm not sure what the quality would have been, but very, very expensive.

And I backed out, but for a while I was thinking this is what I'm going to do. I'm going to go to this university for a computer science degree. And you just need to stay clear of them. It's not worth it. They're often predatory, they're just bad.

TODD: Not to be confused. One thing I want to do mention is ... sorry to interject, Jamon. The Code Academies are for-profit also, but those-

JAMON: Yeah. That's much different though.

TODD: That's different.

KEN: Yeah. We're not going to mention any of the names of the for-profit universities, because we don't want to get sued, but ...

JAMON: They're bad, yes.

KEN: They're bad.

JAMON: But there're a lot of really great state universities they can go to. A really great way to go is to do ... your Running Start type program for two years and then go for the next two years at a state university and you can get a degree. And it's honestly relatively inexpensive.

CHRIS: One of the things that I would love to add, regardless of what you do, whether you're an engineer, or a designer, or a founder of a company, one of the best ways to learn is actually to teach what you know to other people.

TODD: Good point.

CHRIS: So that when you don't understand something, you're going to dive in to learn it so that you can explain it to someone else, and that's where oftentimes I found that theory and practical knowledge combine and multiply.

TODD: I think that's fantastic. I would totally agree. I've taught a handful of programmers throughout my career, from nothing into professionals, and nothing teaches you like teaching. It was a big boon.

As for business education, we talked about that as a combination of education, however you get that, and experience. But if you want to be an entrepreneur, there is absolutely no excuse.

Today is Tuesday when we're recording this. You can go down right no, go to Costco if you don't have a Costco card go to Walmart, buy bottled waters. They're really cheap. You're going to get 24 pack, whatever, for whatever it is. So basically you're paying pennies for each bottle.

Go down to the beach, or wherever in your local town where people hang out, and sit there and sell bottled waters for about 30 minutes.

KEN: Until someone calls the police on you for not doing it with a permit.

TODD: Correct. That's why the time thing. But you can sell. When someone's out running, or they're with their kids at the park, you can sell one of those bottled waters for $2. You bought it for 15 cents, you sold it for $2.

Congratulations. You are now a business person. And it just goes up for there, and the truth is, a lot of people who want to start a business, they really want to want to start a business, they don't actually want to start a business.

So I always recommend to people, do the bottled water test. If that's very unpalatable to you, you're probably not ready. Doesn't mean you won't be ready, but you're probably not ready to start that small business yet. Little advice from your uncle Todd.

JAMON: I don't think I would ever go to the beach and sell bottled water unless I had to.

KEN: I don't think I would do that either.

TODD: People like really successful in sales people and stuff like say Mark Cuban, he did this kind of stuff. But from a young age he was a business man and his job was to find things that he'd get for X and sell for a multiple of X. And he would do anything. He would go door to door.

KEN: If you're already a programmer or designer, go get yourself an LLC and put your shingle out as a one person consulting firm. It's not the same quite as business, but it gives you a little bit of a flavor for it. It takes you down that road a little bit. That was certainly what did it for me.

TODD: Don't work for free.

KEN: Yeah. Don't work for free.

TODD: Whatever you do, don't work for free. Everyone will try to get you to work for free. Don't do it. No free bottles of water.

KEN: That's a whole another conversation.

TODD: Except for the cop who's arresting you for permits.

KEN: Yeah.

TODD: Give him a few-

KEN: What if I just slipped you one of these bad boys, officer?

TODD: This fine, fine water could be yours.

KEN: On that note, thanks for listening everybody.

JAMON: See you next time.

TODD: Yes, thank you. This was Todd, and this is Jamon. No, that's not Jamon. This is Jamon-

JAMON: Thank you. This ...

KEN: I had a great stopping point, and Todd just had to keep talking. You just had to keep talking.

TODD: Ken, I'm not the kind of person who has to have the last word.

KEN: Yes, you are.

TODD: I'm really not. That's funny. I'm going to stop recording.

About the Show

The founders of Infinite Red share stories and insights into creating and leading a software consultancy on the edge of tomorrow.