Messing about with coding

Caporegime
Joined
17 Feb 2006
Posts
29,263
Location
Cornwall
So my situation is really like a person who has learned to lay railway track, but doesn't know to where he wants to build a railroad.

So he lays a few meters of track outside his house, then gets distracted and goes to tend to his garden. And forgets about the railroad.

Over the years I've ducked about with coding in various languages, most of which are long forgotten.

Currently I deck about with Powershell for work (badly).

Before that, outside work I docked about with Javascript and sometimes the Google maps API.
Or a bit of Python.
Or C/C++.
Or Pascal.
All to the lowest possible standard, so that your 5 year old would be embarrassed to have produced it.

Or a couple times breaking out IDA and reverse assembling an ancient 16-bit DOS game, patching some stupid AI cheat into it with assembly and hex code. Because I love that game and the AI was useless.

I don't know anything about software patterns and I've never written a large program. Or a commercial program of any size. Mostly a couple hundred lines of crap here, a thousand lines of crap there. Before ditching it all and going back to the gardening.

This clearly demonstrates that I'm not a man of great creative talent nor do I have good ideas for projects of my own to work on.

And the code I write is probably useless and inefficient and crap and full of rookie mistakes.

But I can use Regex and Xpath and have seen other useless stuff like LISP and all sorts of nonsense like knowing the difference between STDCALL and CDECL and other random stuff that will never be in any pub quiz, ever. None of which will impress anyone.

I'm also ancient and on a post-40 downward trajectory!

Clearly, nobody is going to hire me as a coder. I sure as hell wouldn't.

Does any of this docking about count for anything or nothing at all? I guess that's what I'm asking. How easy would it be to turn the ducking about into some useful bullet points on a CV.

I still don't have an idea for a killer app so there's no point in just starting something that I won't bother to finish through lack of interest. I mean to a certain extent everything's been done. There's already a billion billion apps for everything on the App Store, whether it's herding virtual goats or an app to design the nipples on your custom-made 3d printed double dong. There's like, nothing left to do that Simpsons hasn't already done.

So yeah. What are your thoughts.

Oh, btw, right now I'm an admin bod. IT admin but it's still just configuring a bit of crap here and pushing a button there. I'm not even good at it.
 
The nuts and the bolts at the most basic level is close to trivial across all languages. That is to say, a for loop is a for loop is a for loop.

But it's the "more than one way to skin a cat" (I hate that phrase as a cat owner) notion that I get stuck on.

Sure I can build a solution, but it's not optimal. Should that be a class of it's own or just a couple of string properties? Should this be a property of that class in this module or should it live over here in this module. Should that be a global var or a pointer that I pass around.. Is this function doing too much and should I split it up into three simpler functions?

And that's where I get bogged down, making endless small changes that don't fix any real problem, but I don't code to any kind of deadline so I get mired in these kinds of niceties.

And I *suspect* that's where a formal training in software patterns and re-usable code would show me where I'm being a ****.
 
So this DevOps thing...

Definition[edit]
Academics and practitioners have not developed a unique definition for the term "DevOps".[a]https://en.wikipedia.org/wiki/DevOps#cite_note-6[c][d]

From an academic perspective, Len Bass, Ingo Weber, and Liming Zhu—three computer science researchers from the CSIRO and the Software Engineering Institute—suggested defining DevOps as "a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality".[6]

The term DevOps, however, has been used in multiple contexts.[7][unreliable source?]

I'll see what SRE is, but I'm curious what DevOps actually means... The above hasn't helped :p
 
Part of the training for what could loosely be called "trainee DevOps Engineers" (there are lots of things wrong with that statement, but I think it serves a purpose), is reading a few books. Have a read of the Phoenix Project and if you want more detail, the DevOps Handbook. It'll introduce concepts such as value chain mapping etc, which helps put all this in context.
Will do, ta. Sounds like a concrete first step to... somewhere :)
 
As for the OP, a lot of the big 'industry standard' patterns and tools and ways of working. You'll never really get to use them unless you work in the industry. Because for someone coding in their bedroom for fun you don't really need to use their methods. A lot of the things that are used in industry are necessary because many people work on a shared codebase, and because you won't always be the person who maintains/fixes the code you wrote a year ago. So a lot of the things you learn are to do with programming with those things in mind.
Thanks for your reply. Want to zero in on this a bit.

What kinds of things (examples) are we talking about here?

I can imagine it's a completely different world to hobbyist coding.
 
So what are you guys actually doing (if I can ask that and it's not top secret).

I was thinking to myself today, if somebody said to me, "Think of an idea for an app," that just about everything has already been done. By 50 different vendors, most likely, all on at least version 12 of whatever app you care to name :p From accounting to flying a jumbo jet, by way of warehouse automation to word processing.

So I asked myself, what are all these coders doing right now? Either they've got some really niche specialism or a lot of people are re-inventing the wheel in their daily jobs.

Of course I don't have a clue, so this is a question of the non-rhetorical variety :)

But, unlike say a plumber where you have to have plumbers all over the country, how many spreadsheet apps does the world really need? Most of us just use Excel. Similarly, how many accountancy apps does the world need, when you've got Xero and Quicken and yadda, yadda.

So I'm back to imagining most of you work on really niche custom solutions for very specific needs, where off-the-shelf apps aren't available.
 
For the last 6-7 years I've been in game development. Very few solved problems there, always on your toes having to come up with interesting solutions. Subject matter is naturally much more exciting than typical enterprise IT.
As a kid I always imagined that's what I'd do, funnily enough.

What kind of game dev do youdo? Engine development as far as I can make out is basically pure maths. And the kind of maths I was worst at to boot :p Trig and mechanics. My brain hurts when I try to think about that stuff.

AI? Typically a fairly weak point in most games. Inc pathfinding, etc.

I guess the great thing about game development is that each game is a unique problem and no two games are alike. It's not like accounting software where each product is trying to solve the exact same problems (based on the various real-world laws of tax returns and the like). To be a bit poncey, it's "coding as art", rather than utility.

The only thing (again AFAIK) that sucks about game dev is the environment. High pressure, lots of crunch, lots of projects that get canned. Unless you are an indie developer, but then where do you get your money...
I want to build an outlook plugin that does some decent scheduling assistance. The OE one is useless and I'm fed up of scrolling through invitee availability to chuck something in. Should be able to click a button and it finds me a time suitable. That's what I want to build next.
Surely there must be 100 existing solutions for this? It's a fairly obvious problem and this is what I meant about re-inventing the wheel. Surely somebody has done this already.
 
Sometimes I wish more people worked in AI development and understood what goes on. Making AI in games isn't about making 'smart' AI agents, it's about making a fun game. It's easy to plumb in a neural network that learns and does all sorts of interesting things, but it's completely useless to designers, impossible to balance, zero fun. Pathfinding and the like is a somewhat 'solved' problem, but it's still very expensive.

Writing code for games is very rarely about finding 'the' solution to a problem. It's finding the cheapest, most abstract way of implementing a game feature. Having only 16ms to update everything in a game world presents very different challenges to financial software, where the primary concern is that the numbers are correct :p
So if you don't mind me asking, how did you get into AI programming? I can imagine it's probably one of the most interesting programming fields there is.

Any good resources - quite basic ones - like "baby's introductory guide to AI?" Good ones, that you'd personally recommend.

Re the pathfinding. I don't know if you've ever played Dwarf Fortress (most game devs are probably aware of that one, the one-man-band creator does a lot of events/talks). Pathfinding as I recall is the primary reason most DF games end in "FPS death". The game starts at 100FPS, and by the time you get to a large-ish fort with 1000s of units/mobs, all of which are pathfinding all over the map, the game eventually craps out at 5FPS then dies :p I'm sure they've got their own tricks to minimise the area being searched each tick, but yeah, pathfinding in that game is actually something the player has to be acutely aware of, in order to try to help the game out and keep FPS up.

I played around with a really basic pathfinding algorithm years ago making a crappy isometric thingy which I abandoned after a few weeks as per usual :p Got me thinking back then about how you take something really brute force and start to make it more efficient. You quickly realise it ain't simple :p Esp if your map isn't static (as per DF) and you can't define nodes to get from A to B optimally (forgot what the term for that is).

But yeah I can tell you enjoy your job :)
 
Back
Top Bottom