startups and code

Coding is not difficult

← Back to home

If you are a developer, you need to always opt for the simplest solution. The more complicated the solution the more difficult it is to maintain.

There are so many blog posts about how to code, where to learn how to code, how to code, best practices, and all the stack overflow solutions. SO MANY ARTICLES that tell these long drawn out stories to produce content (like this paragraph here for example that really is saying nothing, but is building up to a point like a rave waiting for the beat to drop).

STOP CLICK BAITING, STOP WRITING LONG ARTICLES ABOUT COMPLEX CODE, STOP IT. YOU ARE CREATING BAD DEVELOPERS THAT CREATE BAD CODE.

Here is how I approach any coding problem:

  1. Write the journey you want the user to accomplish
    1. This will create questions for clarifications
    2. Answer those questions by doing wireframes (pictures work)
  2. Draw some wireframes of the journey
  3. Write the first page of the journey
  4. Verify the first page works with the activity
  5. Repeat step 3-4 for the remaining pages of the journey
  6. Repeat All for additional journeys

Here's an example...

Tasks

  1. I want a user to create a new account
  2. I want a user to login to their new account
  3. I want users to reset their password

Now I would ask some initial questions, what do you need to create an account? Username, Password, First Name, Last Name, Phone, Address, etc... What kind of validation do you need for those fields? Ok, I think I got it, let me draw some wireframes...

I would draw on paper usually (or a tablet)...

Then I use a flask boilerplate (because I love Flask and Python) and create a landing page with a create account button.

Then I create the routes for the account, and make sure I can see that in the database.

Done, That is a hackathon, prototype for everyone. You almost ALWAYS need to create an account.

That's it. It's not that difficult. You can google all sorts of solutions on how to create a sign-in page. You can make it more complicated by adding Angular/Vue/React, Babel, Webpack, Cloud Deployment, Docker, Kubernetes, Selenium Tests, PyTest for Unit Tests, Terraform for your builds... and it gets more and more complicated, but that is more DevOps work.

Start simple and figure out WHY you are adding complexity before introducing abstractions, libraries, and much more.