
Ask HN: How do I get better at building stuff? - cantbuild
I&#x27;m 38 years old and have been doing software since I was 13.  I&#x27;ve got a PhD in systems engineering and was in academia until a year ago, but I&#x27;ve only just realised I have always worked at the level where I got a codebase and improved it.  I suck immensely at building stuff, I make it too complicated, I overthink, underengineer it.  I know little about market fit, shipping product, etc and I feel like I&#x27;ve wasted 15 years not doing it.  What&#x27;s your recommendation on the shortest path to fixing this?
======
JoshCalbet
To improve codebase is harder than building from scratch, as you have to get
familiar with it first and understand what other developers have done with it.
Now you have experience you have a feeling of how to make things ~right. But
as other mentioned the way to get better is actually to build stuff. Take a
project/idea you'd like to see alive and chunk it into small/workable pieces
that on the first place make a set of "deliverables" that keeps you engaged in
your progress (you probably didn't have to do this with previous codebase).
Then start the action! I'd suggest to focus first on the list of "easy"
deliverables so you can get started and get confident as you connect pieces
together. In the process you'll see how the list of deliverables grows but
also you have to know where to stop (as most people from Academia do not
know), for this ask yourself what is the minimal set of features that your
project need in order to work? once you have gone through this minimal set you
build from there and you can even return to see what can be improved (just as
you did with improving codebase).

To get a projects/ideas look at your own needs and think what you would like
to be improved to make your life easier or make some tasks less annoying or
ask other people, there are a lot of people with ideas around there but very
few people willing to invest time to implement them

------
hackermailman
Some interesting notes here from Matthias of HtDP/Little Schemer author fame,
how to do software engineering
[http://www.ccs.neu.edu/home/matthias/4500-f18/lectures.html](http://www.ccs.neu.edu/home/matthias/4500-f18/lectures.html)
and it's basically what I do, top down design, then build bottom up, which at
some point during this I'll trash the spec and re-do it as now I have a better
idea from building what I actually need. Repeat until somewhat satisfied with
what been built as you'll never be satisfied.

I also use most of the advice here from the talk 'Effective ML', like creating
an interface for everything, making failure obvious, ect
[https://www.youtube.com/watch?v=4l16sYRpfL8](https://www.youtube.com/watch?v=4l16sYRpfL8)

------
deepthought42
The best way to get better at building things is to build more things from
scratch. You're last sentence though suggests that maybe you aren't that
interested in getting better at building things and instead you want to get
better at shipping product, finding market fit and doing the stuff usually
associated with starting a business. If that's the case then building more
things probably won't help you. Those skills aren't really engineering
related. If you want to be better at shipping product for example, then the
best way to do that is to get better at planning and to practice regularly
deploying your product. Finding market fit requires a lot of talking to people
in your target audience and shipping a product that meets those needs.

Essentially, if you want to get better at building things, then simply build
more things. if you want to get better at everything else, then step away for
your computer, talk to people, make connections, and put your work out there
for others to see early and often.

------
LarryMade2
15 years?... Don't just build more things; build harder-to-build things give
yourself a real challenge or three.

------
gitgud
Over engineering is a problem I face too. I feel the best course of action is
to simply write the MVP then fix problems like scaling, responsive design,
flexibility, integration...etc. As they are required.

Build, don't prematurely optimise

------
oaththrowaway
Build more things :)

