In this episode, Tyler helps Rick create a plan to teach himself how to code a web-based application. Rick isn’t sure where to start and asks Tyler for help. Tyler shares best practices he’s learned from teaching more than 15 people how to code from scratch. 

After going back and forth, the following framework emerged for teaching yourself how to code a web-based application:

Clarify why you want to learn how to code.Get a macro understanding of the skills, languages, and technologies you need to know in order to build an application. Pick a simple CRUD (Create Read Update Delete) application to build from scratch (e.g. a blog).Set up some basic infrastructure and pick a server-side (or back-end) language (e.g. PHP, Python, Ruby, etc.)Start by building a static version of your web application with HTML and CSSThen work through the C-R-U-D of CRUD. Create, read, update, delete one at a time.Add Javascript to freshen up the UI or UX.And add APIs to add third party functionality (e.g. Stripe for billing). 

Takeaways include: 

Start macro. There's a bird’s-eye view that requires some generalist research to help you visualize the macro components required to build a CRUD app. Picking your server-side technology and languages are going to be one of the hardest things to do. What is your server-side language going to be? How are you going to set up your database? Where will you host your servers? Take some time to get this right.Set up a local server on your computer to start. This simplifies the initial infrastructure setup.Use GitHub. When you're writing code, get in the habit of checking all your code into GitHub so that it's backed up. This helps with version control and code review.Find a mentor. Find someone who will do regular code reviews with you and give you feedback.Keep the front-end simple to start.


Why learn to code?

Rick: Now that we've got PandoLabs steady and GroupCurrent on a good trajectory, I'm starting to turn my attention to how I can finance the development of a minimally viable product, specifically in the business-to-business software application space. One of my constraints at LegUp Ventures is I don't want to give up control of the company as I scale it, so I have to be very cautious about giving up equity early in the company because I need to be able to give up equity later without losing control. In our episode about technical co-founders, I realized the person I need is a full stack developer, and basically that's a unicorn that is going to cost me an arm and a leg in terms of cash and/or equity. So I reflected on that. I talked to some people. I talked to you offline. What I came to was I was a computer science major at Duke, so I'm not some person who doesn't know anything about how a web application works. But from what I learned, the Duke computer science program when I was there, we were doing assembly classes. My eyes were glazed over. The best classes were the programming classes where we actually built something that resulted in something that worked. Facebook was just getting started at the time. The whole idea of building a web application and building a business around it was no part of the curriculum.

Tyler: Well, if I can interject for a second, I think a lot of people who didn't major in computer science don't appreciate the fact that most computer science classes, you don't code at all. You write your answers down on a piece of paper and turn it in. You really don't learn much about software engineering, which is a whole different discipline from computer science.

Rick: Exactly. And the reason I majored in computer science was to learn how to code, but I ended up not learning much about how to code. But I learned a lot of theory and I learned the history of the internet, and some valuable things. And plus I can say I majored in computer science and people think that's cool. But I did learn some things about coding through that major. But there's been 12 years, 13 years since I've coded past HTML and CSS. So there's a huge gap between how I think in my head based on what I learned about how building a web application works, and what the truth is today. There's been significant evolution in the no-code space for example, which allows people who have no ability to code to logically and visually design applications. There are also significant infrastructure automation tools that massively reduce the knowledge you have to have about setting up and running servers, and worrying about security, and all these things that you really had to know back in our day, my day, 2007. So I've decided that I need to learn these things and I don't know where to start. So I think there are a couple of approaches. So why do I want to do this? I want to start there. I am terrified of making a mistake hiring someone to do this and wasting a ton of money. I'm also terrified of bringing the wrong co-founder on because I don't know enough about what I truly need. When you say I need to hire a full stack developer, that's good. That's like a unicorn to me and I feel that's very risky. So through this effort, my main goal is to reduce risk. I don't actually expect my myself to actually learn how to code a full application. I do expect to de-risk bringing on support to build the application.


Tyler: If I can add one other reason to do this, I think it'll make you a better executive overseeing future technical hiring. There's no business in the world that doesn't have some technical component to it anymore. And if you want to run businesses, knowing how to code will help you even if you never write a line of code ever again.

Rick: Totally agree.

Tyler: Cool.

Rick: My problem is not necessarily to learn how to build an application. It's to address my fear of really wasting money in early stage product development. Where do I start?

Tyler: Yeah. Well I think it's good that you have that constraint here because for anyone listening to this episode, it's like how to learn how to code is such a broad topic. We need a constraint. And the constraint here is you're not trying to go get a job as a professional developer. If you were, I'd say you'd probably need a much better theoretical background first of all. And second of all, the technology you use would need to be really focused on what's sexy and trendy right now because that's how you get hired. You don't care about any of that. So it's really how do you build an MVP as quickly as possible, ignoring your learning, and the sustainability of the software long term because someone else is going to come along and rebuild it probably.


Rick: Yup, exactly.


Where to start?

Tyler: Okay, so my background here, I majored in computer science at the exact same time you did and got sounds like the exact same education you did. But then became a professional software engineer after that. And I don't code a ton anymore. I probably maybe put in 10 hours a week at this point, but I think I'm relatively up to speed on how things go. My attitude is that it was much, much easier to ship a working software product 10 years ago than it is now. Let me clarify. You can s...

Twitter Mentions