Do you ever try to write a program (as in, on a computer), and then it gets so damn big that you can barely keep up with what you've got?
Or maybe you understand it all in your head, but when you start getting run-time errors it's pretty much impossible to fix it without screwing something somewhere else up? And even if you can fix it this way, it takes hours and hours, maybe even days, since you have to go through and change things around all over the program, and eventually you end up getting lost with all the changes you've made and having to reload a previous version and start over?
Or you just get so fed up with it that you decide to scrap a month's worth of work and like 10,000 lines of code and start over from scratch because it actually seems easier due to all of the above difficulties? Or you take a break from what you're writing for a few months and when you come back you have no idea what the heck is going on in there anymore?
I'm wondering if this is something that goes away with more experience, or if there is simply a limit to how much complexity a person can hold in their head at once, or if I'm possibly just stupid and a really shitty programmer. From having repeated this process of building something, watching it become more and more complex until making any changes requires a Herculean effort, and then eventually just giving up and starting over, I've decided I need to find a new strategy here. So far my best ideas are:
Actually diagram out what I'm trying to build before I start coding it, instead of taking the "I'm smart, I can just start writing and juggle it in my head as I go" approach. Problem: I don't know enough about software engineering to know if what I'm flowcharting or describing will actually work before I type it in and hit the compile button.
Read that damn "Code Complete" book front to back, preferably memorizing every page, until it teaches me all the tricks that people use to overcome these difficulties. Problem: It would take a really long time and I'd likely move on to something else and never actually get anything useful built.
Break everything up into really, really, really small functions (maybe 12-15 lines of code), and use very long, descriptive names for variables and functions, so that when you go back to change things it doesn't just look like a big mass of meaningless gibberish. Problem: I don't know if this will actually make it easier, or just waste more time.
Keep practicing and hope I get smarter/more experienced. Problem: It will also take a really long time and may never happen.
Make a really long post on INTPforum seeing if anyone else can relate to this issue. Problem: This isn't really a programming forum.
So does anyone else have any stories about the aneurism-inducing stressfulness of trying to create software? Or perhaps advice on how real software developers manage to write massively complex programs without driving themselves insane or giving themselves strokes in the process? Needless to say, I can't even imagine how people actually manage to do this stuff in teams, but I'm sure they must be using a vastly different process than whatever I'm doing.
/rant
Or maybe you understand it all in your head, but when you start getting run-time errors it's pretty much impossible to fix it without screwing something somewhere else up? And even if you can fix it this way, it takes hours and hours, maybe even days, since you have to go through and change things around all over the program, and eventually you end up getting lost with all the changes you've made and having to reload a previous version and start over?
Or you just get so fed up with it that you decide to scrap a month's worth of work and like 10,000 lines of code and start over from scratch because it actually seems easier due to all of the above difficulties? Or you take a break from what you're writing for a few months and when you come back you have no idea what the heck is going on in there anymore?
I'm wondering if this is something that goes away with more experience, or if there is simply a limit to how much complexity a person can hold in their head at once, or if I'm possibly just stupid and a really shitty programmer. From having repeated this process of building something, watching it become more and more complex until making any changes requires a Herculean effort, and then eventually just giving up and starting over, I've decided I need to find a new strategy here. So far my best ideas are:





So does anyone else have any stories about the aneurism-inducing stressfulness of trying to create software? Or perhaps advice on how real software developers manage to write massively complex programs without driving themselves insane or giving themselves strokes in the process? Needless to say, I can't even imagine how people actually manage to do this stuff in teams, but I'm sure they must be using a vastly different process than whatever I'm doing.
/rant