Programmers/developers - How do you plan/implement your personal projects?

SlowCoder

Well-Known Member
Joined
May 2, 2022
Messages
455
Reaction score
317
Credits
3,611
In my personal time, I like to dabble in code. For any project, my typical process is to write ideas/details in a text file. This gives me a general idea of what functionality can or will be available. Then, when I start coding, I will add TODO remarks for code to be added. That's about it. Projects typically just organically grow, with no real structure or organization.

I've tried idea and technical flowcharts, and kanban, and find that they seem to just be extra work, while not adding much benefit.

So, I'm curious how you guys do your personal planning and implementation of projects?
 


I wholeheartedly agree. Flowcharts etc. are a diminishing return in terms of projects size (not physical lines of code, but conceptual size); the smaller the projects, the more of a waste of time it all is. Unless you're in a team. That's a different game and I won't get into that because I sucked when working in a team and because we're talking home-projects -- the best kind. I like to just template everything for each individual piece -- not necessarily even function, just piece. And I say "function" because I prefer working procedurally. I find OO wastes lots of time on design and I'm one of those people who gets lost in design as it is (if it's a big project, I see the benefits of OO, but mainly because it makes abstracting things easier which makes overhauling large chunks of code easier, otherwise for home-projects, I'd avoid OO and be laughed at by the new kiddies). Anyway, once the actual functions are all templated, the answers to my design questions have come during the templating due to obvious mistakes being highlisted during the process. So, now that I have a skeleton that "works" in theory, I'll start filling each function with stuff, testing it, moving on, testing... and eventually everything works. Then comes the putting things together. It'd start off as just results sent to stdout, but eventually the graphics would tentatively be added (if applicable)... This only relates to coding an app/game/etc. For small utilities and scripts, I work entirely organically because I know what I want to be done and how.
As for tools, I hate IDEs, I dislike these modern tools that ship with engines where you create "nodes" and this magically creates half the code for you. I can't visually code. I need to just sit and write and run and repeat until it works. Sorry, old-fashioned, not all fancy, cool, and sleek like the modern gen.

On a side-note: I think I'm a little disillusioned with coding now. I wanted to be a big indie game dev and I lost an entire RPG during my Great Data Loss. I hadn't actually coded it, but I'd written the plot, designed the maps, weapons, items, enemies, levelling systems unique to each character, hidden shit, some music... Man, I'd even written a test game to familiarise myself with the SDK I was going to use. It eats at me because I keep thinking, "if I'd just dived in, I'd have finished my RPG!" even though I know that test game took like a 10th of the time the RPG would have. Anyway, I haven't seriously coded in years. I write utilities for myself, mostly just bash scripts (which doesn't really count) and a few small utils in C, like my own "password manager" (it's a lot more that that, but still) coz I don't trust anyone else's. I was planning on writing a public version, coz it's actually quite useful, I run it on my PC, laptop, and phone, but I never got around to it coz during my disillusionment, I realised I actually don't like coding (anymore?) so much as the results it brings. I think 11yo me fell in love with a novelty. Or maybe I just never got over losing all that work and I subconsciously associate coding with that.
 
In my personal time, I like to dabble in code. For any project, my typical process is to write ideas/details in a text file. This gives me a general idea of what functionality can or will be available. Then, when I start coding, I will add TODO remarks for code to be added. That's about it. Projects typically just organically grow, with no real structure or organization.

I've tried idea and technical flowcharts, and kanban, and find that they seem to just be extra work, while not adding much benefit.

So, I'm curious how you guys do your personal planning and implementation of projects?
I pretty much throw myself down the hill, too. If anything, I maintain a simple to do list.

I guess the moment I publish anything I’d become a bit more organised…
 
The key thing for me is just the concept of what i'm trying to achieve ; then I look at possibilities. I start first with A4 paper

My to do is also on paper.

I tend to have a feedback mechanism based on " it works, but there could be a problem with.. or I found a problem with .."
then I feed that back into code. I use git for version control in case i mess up.

I use logic flow charts on paper to help me understand what happens or should happen for various possibilities.

I could show you a current project https://notabug.org/captainsensible/codeigniter4CMS BUT notabug is down for now due to hardware failure
 
In truth, it depends on the size and complexity of the project.

For simple projects - I’ll usually just dive straight in and code something. And then gradually refine the code/design as I go.

For a more complex project I might take some time to put together a formal design, using UML, flowcharts, use-cases, timing charts etc.

That way, when it comes to coding - I have a clean design and a clear direction from the outset. And I can stay focused and get a working prototype up and running more quickly, without running into too many unexpected bugs/problems.

I might also use an IDE to quickly design/build/prototype the GUI for complex projects too.

But when it comes to building the actual application, I’ll usually take the boilerplate GUI code generated by the IDE and edit/modify/refactor it by hand, to better fit the design of the program.

Boilerplate code from IDE’s isn’t always clean/elegant and can sometimes muddy the design of a program.

But I’ll rarely use an IDE for a complete project. Most of the development for my projects is done in tmux sessions in the terminal, using Vim as my editor plus any other tools/build-systems required for the programming language I’m using for that particular project.

Most of my development is done using C/C++, but I also use Bash, Python, Ruby, Lua, Java, JavaScript etc.
 
Last edited:

Staff online

Members online


Top