Advice for ITE programmers
2023-11-24
I just finished paneling the end-of-semester startup pitches from the ITE students. There are a lot of mistakes that I think the technical people make when building their product.
If you are an ITE programmer, you are probably making some sort of website, but don't get caught up in the world of front-end web development. Please. This is for your own good. If, after your group comes up with a problem, you feel that you need to build a website, consider first how you would build it with just Flask and Postgres.
Believe it or not, I prefer to minimize the technology needed to solve a problem. Most of the world of front-end web development is low-leverage stuff, especially for ITE groups. Constraining yourself to just Flask and Postgres will make your life much easier:
- You will be forced to learn the basics of how the web actually works. HTTP requests aren't some sort of black magic, they're (sometimes encrypted) plain text that gets parsed by browsers and servers. An understanding of HTTP, HTML, CSS, and some basic JavaScript (not Node!) will pay monstrous dividends should you eventually choose to delve into the swamp that is modern front-end web.
- Browsers can render perfectly functional websites just fine with just HTML, and sometimes some CSS. The basic blocks of web development are so powerful that your group should should grill you if you consider trying to build something that HTML does out of the box with some awful JavaScript framework. I'm serious.
- Postgres is a wonderful FOSS database that can solve most of your data needs. It's well-supported and well-documented on both its official documentation and StackOverflow. If you can't manage your data with Postgres, you must be doing some really esoteric stuff. Consult with me or Joben in that case.
There may come a time when you'll need to pick up a front-end web framework. For most of you, that will be some time after you have evidence that you're solving a significant problem well enough that people want to pay you. For some of you, maybe your value proposition somehow revolves around making a UI that can't be built with just HTML. In the second case, I would advise caution about the whole idea. Is the problem you solve so insignificant that a slightly older-feeling UI would turn your users off of your product entirely? Pick something stronger.
Don't overcomplicate your life. That's what kills most of you.
PS
-
The exception to this is mobile app startups. But even mobile apps can be made simple. Just pick a platform and develop natively*. Deal with multiple platforms after you've gained some traction with users.
-
There are, of course, startups whose problem can't be solved with just a web app. I distinctly recall one group that worked on vehicle pathing algorithms. If you're working at that level, the advice still applies. Don't waste your time** on things that won't actually help you solve your problem. In our experiences with ITE startups, most of them think that development is hard because they were exposed to the absolute state of front-end web. Just ignore the JavaScript guys and you'll live a happier life.
-
Hello, this is Joe from the distant future of 2024. I also recommend Django. Django's so good.
* I have not developed a mobile app myself. Take my opinion here with a grain of salt.
** There is one exception to this: if you feel a need to learn the technology for learning's sake or to strengthen your development skills. This is fine, but don't lie to yourself that you're solving your startup's chosen problem better.