• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

GAF Devs Thread - a thread about programmer's rants

Status
Not open for further replies.
Andrex said:
So what's everyone working on? At work (if you're allowed to talk about it) or on your own time?

at work: working on the project i wrote about in the OP

as freelance: setting up an e-commerce and a couple of small stupid websites

in my spare time: mantaining a couple of modules for a framework

because i'm a masochist: developing with a colleague an iOS game
 
Fersis said:
Currently unemployed but on my own time im coding:
- Fighting Game Engine. (Just to learn more about my favorite genre)
- Basic FPS Engine. (Just to train myself at designing levels)
- Helping on some open source project. (Because the lead guy helped me before)

But im not into coding as much as before, in fact i want to drop it for good once i get a design job.

You have a Github? That goes double for anyone here.
 
Fersis said:
Currently unemployed but on my own time im coding:
- Fighting Game Engine. (Just to learn more about my favorite genre)
- Basic FPS Engine. (Just to train myself at designing levels)
- Helping on some open source project. (Because the lead guy helped me before)

But im not into coding as much as before, in fact i want to drop it for good once i get a design job.

man i'd love coding for gaming at work, or at least for something related to entertaining.

all the companies i've been working for just do services and tourism applications
 
Andrex said:
So what's everyone working on? At work (if you're allowed to talk about it) or on your own time?
At work: Just delivered a massive quoting/pricing/pricing analytics system for a fortune 500. Now working on adding some more features to it. Next big thing, replacing a product/pricing/tolerance master system along with it's data warehousing elements.

Own time: starting to write a book about all the awful stuff I've seen.
 
Homework:
1) Two player turn based game using Unity and SmartFox servers
2) Group project (shudder) multiplayer game for the same class with the same tools
3) Bezier curves in OpenGL using C++
 
Fersis said:
I remember my first 'sleeping in the office' experience.
Do you guys remember your first crunch?

It was pretty awesome the first time, i was young and i rocked 14-18 hours days for weeks.
But then it became the norm =/

The most memorable for me was three days straight, I only slept like 4 hours in those three days, some coworkers didn't even sleep. At the end we were basically doing very little, acting like zombies. We did meet the deadline at least, which usually doesn't happen even with sleepless nights.

Overtime kills you and the quality of your work, yet every company seems to want it to be the norm.
 
mantidor said:
The most memorable for me was three days straight, I only slept like 4 hours in those three days, some coworkers didn't even sleep. At the end we were basically doing very little, acting like zombies. We did meet the deadline at least, which usually doesn't happen even with sleepless nights.

Overtime kills you and the quality of your work, yet every company seems to want it to be the norm.

my last boss fortunately was a programmer himself and perfectly understood that if we were too tired was completely pointless force us to stay at work
 
Halycon said:
Homework:
1) Two player turn based game using Unity and SmartFox servers
2) Group project (shudder) multiplayer game for the same class with the same tools
3) Bezier curves in OpenGL using C++
Is the multiplayer game for some sort of game design course?
 
survivor said:
Is the multiplayer game for some sort of game design course?
Multi-Users and Media Spaces.

My major is "Game Design and Development" (cue laughing from industry vets)
 
Andrex said:
So what's everyone working on? At work (if you're allowed to talk about it) or on your own time?

Just changed from full-time architecture work on an online gambling product to part-time architecture and consultancy for mobile-web and apps within the same company. The work is pretty easy, it's basically designing intermediary layers which translate web-services to a single format which is then used by our internal presentation layer to dynamically generate a high-quality version for smartphones which degrades gracefully for older handsets.

Hobby stuff is mostly Android dev at the moment, but my imagination has been failing me recently so I can't think of a good project. Thankfully my company has a huge number of legacy products written for Symbian, so I'm going to start doing some ports in the next few weeks.
 
nickcv said:
my last boss fortunately was a programmer himself and perfectly understood that if we were too tired was completely pointless force us to stay at work
My philosophy is that into every project a little rain(overtime) must fall. But a chronically overworked team creates mistakes. So in essence overtime creates risk. A manager's #1 job is to mitigate and eliminate risk. So a good manager creates plans that can be delivered in 40 hour work weeks/as little overtime as possible.

It's amazing how many companies hear that and balk.
 
Halycon said:
Multi-Users and Media Spaces.

My major is "Game Design and Development" (cue laughing from industry vets)
Is the difference huge from a regular CS major? I'm guessing there is less CSish courses for later years and more hands on programming ones?
 
survivor said:
Is the difference huge from a regular CS major? I'm guessing there is less CSish courses for later years and more hands on programming ones?
Yes, that is the main difference. Less theory (although it can be math intensive at times) and more practical stuff. As well as a gaggle of other vaguely related coursework like 2D/3D animation, HTML/CSS and basic networking.

You can see the curriculum here: http://igm.rit.edu/node/175
 
If it wasn't for cigarettes, I'd be driven mad while coding. In the 2 man project I'm working on at the moment, naming conventions aren't too bad cause we both know how each other name things but it must suck for large teams all naming things different ways.
 
nickcv said:
(and with my luck will be running with software written in fortran)

I love Fortran! I remember having to write a Genetic Algorithm in Fortran to help find the optimal solution to an aircraft design problem I was working on for my undergraduate thesis.


I don't like coding in general, but I have to pick up C# .NET. I am in the unenvious position of having to write code that interacts with Microsoft Office products. (All the coders at work have other things to do right now. :( )
 
68257_805948735175_6403382_44004744_5274405_n.jpg


I enjoy leaving messages in comments or variable names for my co-workers. Its pretty fun. Also, I already documented those methods, don't kill me.
 
BigNastyCurve said:
Comments are for poor coders. Really REALLY good code is self-documenting. Small functions. Good function names.
I disagree. I love comments, I comment the shit out of my code. I have a bunch of shitty apps at work I need to maintain with code I wrote 2-3 years ago and don't remember at all but whenever I need to update something its no problem thanks to the comments. Its gotten to the point where I barely even have to read the code anymore, I just read the comments like a book until the I get to the point I need to change and then bam its on to the next task.

I agree that small functions and good function/variable names and such are important too, but that and comments are not mutually exclusive.

I probably over comment and I'm sure there are plenty of obvious and unnecessary comments in my code, but I think its better to over comment than under comment. If you push yourself to document things in your code habitually it will help you since you'll wind up putting in very good comments for the complicated things that really need commenting. Which will help a lot when you or someone else come back years later.

Some things are just complex man, and good commenting can really help you from feeling overwhelmed when trying to scan through a tree of code files figuring out how things work.

Didn't mean to dump on you haha. I'm just surrounded by old farts that barely understand how to use fucking objects and never comment their archaic hack code (I swear its a contest around here for who can find the most convoluted ways to accomplish the most basic tasks) so its always a pain when I have to decipher their crap lol.
 
I work as a Java programming at the Canada Revenue Agency. The coding practice here is awful. 99% of methods are not commented one bit.

Any time I create a new method, I make sure to write the JavaDoc. I try to give a general walkthrough in the code to help with organization and so that the flow makes sense.
 
Fersis said:
I remember my first 'sleeping in the office' experience.
Do you guys remember your first crunch?
Do I ever.
64 hours weekend(Fri-Sun) - and we all loved it -_-

In terms of bad-code, I've started seeing a LOT more once I joined big-companies, but nothing quite prepared me for the last 12months.

One of conversations on such topics:
C: Yea I figure some of their code is still reusable.
A: Definitely. Especially the comments."
 
To me commenting code is like sex in a marriage. If you can't get that right. There's a very good change you wont get other things right.
 
Fersis said:
I remember my first 'sleeping in the office' experience.
Do you guys remember your first crunch?

It was pretty awesome the first time, i was young and i rocked 14-18 hours days for weeks.
But then it became the norm =/

I remember my first crunch. I remember how crunch helped ruin my relationship.

One of the random funniest lines I've seen in code:

int favre = 4;

The original developer was based in Wisconsin. This variable was not used anywhere but this line existed in two places in the code base.

Halycon said:
Yes, that is the main difference. Less theory (although it can be math intensive at times) and more practical stuff. As well as a gaggle of other vaguely related coursework like 2D/3D animation, HTML/CSS and basic networking.

You can see the curriculum here: http://igm.rit.edu/node/175

As someone who relatively recently graduated college and worked in the industry I STRONGLY advise AGAINST fully game specific degree programs. I majored in CS and minored in game programming (the minor basically covered my electives for my CS degree plus a few more classes). Some of the most useful stuff I learned was in classes that are NOT part of my universities game programming major, and from what I've seen not on a lot of other school's game programming majors. There's a rather overwhelming tendency by people going into game programming to want to avoid certain aspects of computer science and electrical engineering that are extremely useful to game programmers.

Anywho end thread derail by me.
 
so what are some of the strange things you do to code well?

I keep one of those solar powered Piplup bobble heads in my cube. People ask me why I have it and I tell them that when I'm designing something or am going to fix something I look at the piplup and explain exactly what I'm going to do. If I can get to the end without stopping myself in thinking up exceptions then I know I'm good to go. People laugh especially when they see me actually doing it, but they'll agree the results can't be argued with.

Also when I have a bug I can't figure out I'll get one of my developers to just stand behind me and look over my shoulder. Typically i find the issue in seconds. I found this by bringing over team members to help me with bugs and while they were standing behind me and I was explaining the problem to them I'd realize the solution or see the problem. And it was always embarassingly obvious once I saw it. Now I find just the fact that someone's looking over my shoulder is typically enough.
 
ronito said:
so what are some of the strange things you do to code well?

I keep one of those solar powered Piplup bobble heads in my cube. People ask me why I have it and I tell them that when I'm designing something or am going to fix something I look at the piplup and explain exactly what I'm going to do. If I can get to the end without stopping myself in thinking up exceptions then I know I'm good to go. People laugh especially when they see me actually doing it, but they'll agree the results can't be argued with.
http://en.wikipedia.org/wiki/Rubber_duck_debugging

I haven't tried this but heard it works insanely well.
 
should i count myself lucky that i haven't encountered anything too bad? company's been around for 8 years and all the proggers have been fairly competent. i'll sometimes call out others if i see some funny looking code, but it's not too often.

i'm a big proponent of commenting.
trying to wrap my head around a big function? write out the pseudo code in comments
doing some non-straight forward data transformation? write a comment at each phase.
with comments, you can inject a little fun and lightheartedness. since it doesn't get compiled, you can do whatever

i do have qualms with lazy co-workers though... it's a serious hit to the morale...
 
ronito said:
To me commenting code is like sex in a marriage. If you can't get that right. There's a very good change you wont get other things right.

I generally prefer to keep comments out of the body of my code and simply write a nice high-level description above each class (and individual functions if necessary). Code with comments every few lines is disorienting.
 
dogmaan said:
Here is an example of horrible code I wrote today.
it's for coursework though so who cares

Code:
bool Date::setDate(string date)
{
	[INDENT]string day;
	string month;
	string year;[/INDENT]

[INDENT]if (date.size() == 10)
	{
		[INDENT]string::iterator iter = date.begin();

		// dates are hard formatted dd/mm/yyyy at the moment
		// horrible I know, sue me.
		
		day.push_back((*iter));
		++iter;
		day.push_back((*iter));
		++iter;
		++iter;

		
		month.push_back((*iter));
		++iter;
		month.push_back((*iter));
		++iter;
		++iter;

		
		year.push_back((*iter));
		++iter;
		year.push_back((*iter));
		++iter;
		year.push_back((*iter));
		++iter;
		year.push_back((*iter));[/INDENT]
	}[/INDENT]
I thought programmers were supposed to be lazy! I'm basically telling you to be more lazy with your code! Use loops, condense things that take multiple lines into one. At the very least instead of saying "++iter;" twice in a row you could just say:
Code:
iter = iter + 2;

That doesn't even require knowledge of loops at all, come on.

Edit: I'm still an undergrad, but I'm also a mentor for the intro to programming classes here. I've seen some, erm, interesting stuff. Granted, most students in those classes aren't CS majors, and usually the CS majors write good code, but the non-majors.....WTF at some of the things I see.
 
I actually find that talking to the code helps me to debug, which really freaks new staff out. I just find that it helps me to consider everything. Simple example but it's usually something like:

"Okay, you're a float. But I wanted you to be an int. Who did this to you? Was it the database layer? Come on, you can tell me. We're pals."

Then I'll go chat with the database layer and get his side of the story. Works for me.
 
Since I self-taught myself programming over the course of many years since the end of elementary school or so and never had the opportunity to actually receive any formal CS training (beyond a trade school certification course) it's a bit of a struggle incorporating useful techniques and coding conventions into my own work, especially when trying to unlearn various bad habits that I developed over time going at it alone.

One major thing that really took a long time for me to get into the habit of was commenting my code. Not like commenting every few lines or something like that, I think that's superfluous and doesn't really make for readable code. But being able to just sit back, actually think about what I'm trying to do in a particular function block or loop or whatever and being able to explain what the actual purpose of a given piece of code is. I'll still forget sometimes but I like to think I'm getting better there.

One habit of mine that I still am not sure as to whether it's a bad thing or not is being overly explicit in operator precedence, aka: parenthesis the hell out of everything. Part of it is that, for as many languages as I've looked at and the amount of time I've been doing this, I seem to never really be 100% sure about operator precedence rules and just enforce what I want to happen "just in case". It makes code less readable but it also means I can always look at how I wanted a certain statement to behave.

Of course that's dealing with high-level languages. I seem to have a knack for looking at and coding in low-level assembly, but that's a whole different can of worms to get into right now :P

Someone give me a job! North Georgia is about as fertile a market for programmers as Alaska is for orange farms :(
 
a few years ago i worked on a project and we had a 3rd party writing our UI for us. when it finally came time to integrate it before a big event, shit kept crashing everywhere. after a lot of hours searching through line after line of their code we finally found that in some obscure header they were redefining like malloc to call new or something but were using both delete and free. it was some crazy ass shit as they didn't know their own code well at all.

it was at that point that we went into overdrive, said fuck it, and i took over writing a UI from scratch and we still shipped in a decent amount of time.

a lot of shit we did was kinda like that. dude. this fucking sucks and i'm sick of wasting time trying to fix it two weeks.

on a previous project, i got sick and tired of debugging this really shittily written set of filesystem drivers. so i sat down one night and in about a week i'd banged out a more complete version, and another week of testing and bug fixing, i'd completely replaced the other with something much cleaner and much more capable.

i hate rewriting code that's unnecessary, but sometimes reducing the number of lines and cleaning it up can save so much time. it's a tricky subject as other times it can be a rathole.
 
Fun fact: All 33,000 lines of code in my indie game have no comments. Zero.

No one is ever taking my shit. I'm the only one who knows what's up.
 
Andrex said:
So what's everyone working on? At work (if you're allowed to talk about it) or on your own time?
I recently completed a Death Notification System where I work. Was an ASP.NET web app written in VB.NET 2.0. The goal was to have a system that allowed nurses on wards to quickly record a patient death. This notification would be saved to an SQL database and then compiled into a word document. The document would then be attached to an email and sent to the patients GP and Medical Records. Also had an in depth audit and reporting tool which probably took more time to develop that the actual app.

The depressing part? To successfully test it, we needed dead people!
 
Oh, and my rants:

Having to write an app based on details that fill half a page of A4.

The other one is 'can you quickly write a proof of concept app that does x in about 2 days?'

So I do, and it's rough as fuck, but it's a proof of concept yes? Erm, no....

'the clients like what they see and they want to go live with it next week!'

Depressing....
 
i need to bookmark this thread. would be a good place to vent. right now i'm not really in the mood.

some previews of my rants would be java/android tools/eclipse.

or pretty much anything involving linux source, systems, and api's, which all just needs to be nuked from orbit. the whole fucking thing just nuke it and start over.

i had to do some work on symbian recently. that was hell. symbian's standard code format is absolutely offensive to me.
 
I once wrote a program, or rather, four programs, to perform one pretty arbitrary task that none the less was important to the people I was writing it for.

I wrote it in a mix of C++, VBS, Batch scripting and at least some parts of it contained HTML.

I didn't comment a thing, put entire blocks of code onto a single line, had variable names such as int I_dont_know_what_this_was_for;, and it was a complete fucking mess. What's worse is that it kind of actually worked. I made a small config text file for people to change the essentials, then I uploaded the mess onto our server. Oh, the program also fetched data from like three internal servers so if any of those PCs go offline the whole thing is fucked.

I left the job a few months later (contract expired), and a few weeks back I got a phonecall from some poor asshole who needed to fix something on it.

I told him he was fucked. I made an unworkable, illiterate and barely functioning program breaking every single standard that could ever exist. And I sleep well knowing someone else now has to deal with it. I am that guy, and I am so god damn proud.
 
Fersis said:
I remember my first 'sleeping in the office' experience.
Do you guys remember your first crunch?

It was pretty awesome the first time, i was young and i rocked 14-18 hours days for weeks.
But then it became the norm =/

LOL. Sad but true. I remember my first crunch, it started off as being "Only for this one month" but eventually lasted six long months. At first I actually enjoyed it, it was my first job in the industry and I felt like a trooper. And getting take-out every night was pretty enjoyable! But after 6 months and having gained over 2 stone and broken up with my girlfriend, I no longer found the funny side :(.

And in terms of bad programming, I think I can trump you all. I'ver worked on porting Japanese games to the European market, working with post-processed Japanese source code! There's nothing quite like seeing a series of meaningless variables and method calls all over the place, oh and there is no one you can contact to find out what the hell is going on.

On a side note, before starting in the industry, I always assumed that Japanese source code would be amazing and relatively bug free based on the quality of the games (particularly from the PS2 era). However, I can tell you from personal experience, this is not the case, lol.

I'm also looking to move out of programming, as for me 5 years is more than enough. I respect it as a useful skill to have, but having to do all day, every day for years sucks!
 
Ubersnug said:
I recently completed a Death Notification System where I work. Was an ASP.NET web app written in VB.NET 2.0. The goal was to have a system that allowed nurses on wards to quickly record a patient death. This notification would be saved to an SQL database and then compiled into a word document. The document would then be attached to an email and sent to the patients GP and Medical Records. Also had an in depth audit and reporting tool which probably took more time to develop that the actual app.

The depressing part? To successfully test it, we needed dead people!

once when we were looking form new programmers a dude mailed us his resume and some code.

one of the projects that he mailed us was something his teachers made him do in college as a test:
a graveyard management system

you must be a really creepy dude to make your students do something like that.


btw, do you guys in the US all work in cubicles?
here we usually have open spaces or we are just divided in a bunch of different rooms w/o any logic.
 
Watching first years try to do their 101 java programming assignments is hysterical. I saw one guy a while back who had typed up:


public int 7;


... and he thought this was going to create an array of 7 elements numbered 0 through 6.
 
I was working for a natural gas pipeline company over ten years ago as part of my university's internship program.

My boss didn't like me all that much. Loved my predecessor. Who - I am not making this up - used variable names like "flag".

That's not the worst part.

One time, my boss assigned me to port some VAX code to Windows NT. I'm not sure why he thought I should do this (or even could) since I'd never seen a VAX at all before this (well, still haven't) much less seen VAX code. So I asked him where I could find references to help me understand the code, and he was like "Why would you need that?" ... Yeah. Still not the worst part.

(Luckily, the company was so big it had a library of old manuals and I was able to sort of translate from VAX system calls to NT system calls. The thing even kind of worked.)

Bear in mind this was in the late 90s and we didn't use any kind of revision control system at all. I don't think we even had test servers to run on before pushing to production servers. And as I wasn't a great programmer and was still in school, I had next to no understanding of what good software engineering practices looked like. I'm just trying to provide context for my actual best/worst story.



OK, so my best/worst story from that experience is this: one day my boss decided he should do a code review with me. So we did. We sat down to look at the two or three pages of C code I'd been working on, and his first question was "What's with these global variables?"

That would have been a very pertinent question if they were global variables. They weren't.

They were function declarations.
 
ronito said:
Yup. That's where I got the idea. Using Piplup instead of a duck though is super effective.
When I tele-commuted and worked from home 1000 miles away from my company's location, I had to do this, but I never knew about any ducks or anything like that :-(

I just sort of walked around the apartment and talked to myself. But it worked!
 
I'm looking to get into software. I currently develop HDL, but I want the glory of writing higher level stuff haha. I can code well enough to put together simple iOS apps, but I do not have any experience at good programming practices, since HDL is such a different world from software. But I'm amazed at all of the stories of bosses actually critiquing code. No one ever looks at my stuff.
 
Hari Seldon said:
I'm looking to get into software. I currently develop HDL, but I want the glory of writing higher level stuff haha. I can code well enough to put together simple iOS apps, but I do not have any experience at good programming practices, since HDL is such a different world from software. But I'm amazed at all of the stories of bosses actually critiquing code. No one ever looks at my stuff.

My boss critiques it fucking hard. Everything from performance/leaks all the way down to stylistic stuff like variable naming etc.
 
I find it funny that developers outside of doctors are pretty much the only profession where it's pretty much expected you'll end up having to sleep in the office or work insane hours. You don't see accounting do that. Let alone sales and marketing.
 
ronito said:
I find it funny that developers outside of doctors are pretty much the only profession where it's pretty much expected you'll end up having to sleep in the office or work insane hours. You don't see accounting do that. Let alone sales and marketing.

No people in accounting do that on YEC?
 
ronito said:
Also when I have a bug I can't figure out I'll get one of my developers to just stand behind me and look over my shoulder. Typically i find the issue in seconds. I found this by bringing over team members to help me with bugs and while they were standing behind me and I was explaining the problem to them I'd realize the solution or see the problem. And it was always embarassingly obvious once I saw it. Now I find just the fact that someone's looking over my shoulder is typically enough.

I've come to realise there's wisdom here. If I get stuck on a problem for a reasonable amount of time, I simply call someone over to talk about it and 9 times out of ten I come up with the solution.

Programmers I think tend to focus on the data structures and logic they're maintaining in their head, and lose sight of the bigger picture when they are buried in their code.

Stopping, and talking about the problem from start to finish usually produces either another solution or an obvious flaw in the current method.
 
You don't see accounting do that. Let alone sales and marketing.
Patently untrue.

But I'm only on good terms with our database and programming staff, and you guys pull insane hours. Hours that make the eyes bleed at the thought.
 
Status
Not open for further replies.
Top Bottom