
Ask HN: Improve my programming methodology, next steps - embleton
I have been programming various scientific tools for near five years. Some of my larger programs can have up to 1000 lines of code, including defining functions.  I would like to break up my programs into more manageable chunks, ideally creating smaller programming tools I can call on to solve a particular class of problems. Ideally, I would like to be able to share my programs with my teammates.<p>HN, is there an ideal structure for building a &quot;tool set&quot; of programs? What are some books or online courses that illustrate how to set up programs?  Best practices?<p>Any direction is appreciated.  If it matters, I am mainly using python.
======
itamarst
1\. Typically you'd start building up libraries with shared code, and then
your command-line tools can be smaller and rely on the shared code. A good
starting point is just looking at Python libraries you use and tools you use
and see how they're structured.

2\. Sharing with coworkers depends on toolchain you're using. E.g. for conda
you could probably do a conda source, for pip you can just `pip install
[http://urltotarball.gz`](http://urltotarball.gz`) or even URL to git
repository.

~~~
embleton
Looking at the scipy directory, I see how they've organized their data. What
I'm missing is how everything is connected. Any tips on educational material
teaching how to connect all the pieces? For example, to use scipy, I know I
need to import it. What I don't know is what happens behind the scenes that
allows the imported module to connect to everything else.

