Would you work here?

Or more accuratly, would you stay here?

The pay isnt that bad, its just slightly below the current market, but im not that fussy. What I am really fussy about is the code that I have to deal with, and the caliber of the people that I work with. The code is basically old, and very decrepit to say the least. Using Typed datasets in some places, and if not, using inline sql called from the code behind. Im serious. We dont really use SQL parameters, its basically StringBuilder.Append to add. And thats another thing - the main head coder here has cottoned onto the fact that Strings are immutable, so he dosent use them for sql. He only ever uses StringBuilder.Append. Across multiple lines, it gets rather ... interesting. Infact, he dosent use them for any of his string work, its always StringBuilders.

Another big gripe I have is how old the system is, even though it was written a year ago - it uses Web Projects thats just cobbled together, as if it was a 1st year university student's project - NO object orientation, NO abstraction, NO centralised methods, NO encapsulation, NO Object Oriented programming, which leads me to ask why they were asking for an OO programmer?

They have no coding standards, variables are named willy-nilly based on what the developer was feeling at the moment - Hotel ID and Property ID are the same thing. They use values like -1 to note that there isnt a currently selected hotel, instead of setting an Enum value. They use T and F in the database instead of boolean values for true and false. Im dead serious about that. They keep doing "throw ex;" - even though, one of the interview questions I had specifically asked about the difference! That really shocked me. If a row is empty, and your trying to retrieve a value from it, it will just return String.Empty, or in another place, "null" - come on guys! .NET has the ability to throw exceptions.

The people here are nice people, but they just dont know that much about programming, or web development in general - they seem to imbed 5 tables into each other to get a border, something which I easily changed with 5 lines of CSS. They seem to imbed iframes, use javascript to redirect other iframes, when you can use ASP.NET User Controls, which have been around since the beta's I believe. They have a habit of just doing whatever is quickest, even though doing the right thing, when you learn it properly will take less time. And im sorry guys, no matter how good you are, if you dont pay attention to case, in a CASE SENSITIVE language, you will waste ALOT of time chasing down hard to find bugs.

I even found one file, out of 960 lines, 910 lines were comments! USE VERSION CONTROL!

To top that off, I am using crappy hardware (PC slows down very often), one single monitor instead of two, running Windows XP instead of 2003 (meaning I have to change IIS settings every time I change which project I am working on), the office space isnt that great, a guy continually makes alot of noise, which my in ear headphones cant even drown out, so it makes concentration quite hard.

I STRONGLY recommend the following books:

Code Complete 2nd Edition
Pragmatic Programmer
Framework Design Guidelines
CLR via C#.net 2
Programming ASP.NET 2.0 Core Reference

The first two books arnt any language specific books, they are about how to write programs properly, how to do things properly, and they have both been around for at least 8 years!

Gaming forums - why I dont bother

There was once a time, a long time ago, when I actually used to care about gaming forums. I setup my own gaming forum which is still running - the Babblers gaming community  - I used to post regularly on it, and also get into arguments with people, mainly who were the great unwashed, and just wanted a fight because they had nothing better to do. After a while, I just couldnt be bothered with all the faff - it basically turned into "im better than you", or "haha your gay" for whatever reason (mainly 16 year olds trying to "big them selfs up"), and I just keep the forum running - I dont read it, and I havnt posted on my own forum in about 6 months. I dont even use the forum for sending private messages - I either email the people directly, or I just dont bother.

Recently, when Command and Conquer 3 - Tiberium wars was released, I was really interersted in doing some modifications to it, just because I like to do that kinda thing (altering the game play in small ways to make playing it alot more enjoyable for me) - and I had a look on the forum - big mistake. Its basically the same, im sure the people there are older, but they all just act like kids - they are all whinging that some other guy beat them and is a cheater (I used to have this problem in counter-strike, to the extent where I just dont bother playing the game anymore), or how EA should modify the game based on the previous C&C games, and if they dont, they are just crap, and they wont give EA any money.

Another incident a few months ago - the new Spliner Cell was released, and I purchased it on the day of its release, to find out my graphics card does not support Pixel Shaders v3 - I was quite miffed obviously, I tried to find a solution around it, but none of them worked, so what did I do? I put it back on my shelf, I tend to buy a new PC every 2-3 years, so when I do, im gunna have a nice shiny game to play. I havnt even considered taking it back and trying to get a refund, because I really want to play it (I have read all the Splinter Cell books too) - its something to look forward to. Back to my point, while searching for any options, I came across the official forums, and people were just whinging that they were unable to play it, for the same reason as me, and they were DEMANDING a fix from the developers, and if they didnt get one, they would take legal action etc etc etc. I really doubt that, the big software company that has produced Splinter Cell have a large firm of lawyers (or solicitors, depending on which side of the pond you live), and to be honest, you didnt read the system requirements, so its your fault (like mine)

</rant>

Using ORM's

I guess im kinda lazy when it comes to web development - id rather have a design ready made, instead of creating my own, and I would rather have my objects and SQL code all created for me, as opposed to repeatedly writing sql queries and populating records. Thats why I use an ORM - specifically, NetTiers.

Instead of writing:

INSERT INTO Category (ParentCollectionID, CategoryID, CategoryName, CategoryDescription) VALUES (@ParentCollectionID, @CategoryID, @CategoryNAme, @CategoryDescription)

then going ahead to populate all of thise fields, and fill them out, I can just simply write:

            Category category = new Category();

 

            category.ParentCollectionID = parentCollection.CategoryID;

            category.CategoryID = Guid.NewGuid();

            category.CategoryName = txtNewName.Text;

            category.CategoryDescription = txtNewDesc.Text;

 

            DataRepository.CategoryProvider.Insert(category);

And hey presto! That new record has been inserted into the database, and works perfectly. I didnt have to write a thing, I just pointed the ORM at my database.

Flying Start

Well Project Paradox has gone off to a flying start - I _think_ i have the database schema laid down pretty well, and im in the process of running my favourite ORM to generate all the pesky objects and all that faff...

New idea for a project

Well iv had some idea to think about this project, and its not nessesarily for me, a very good friend of mine and her business will benefit from it - its basically a gallery, for the press, with very high quality photos, so they can be easily used and printed, and I guess im going to be basing it around some technology I have already built - the PhotoManager that I have created, although I will be heavily extending the code, and to be honest, rewriting big chunks of it, to follow framework guidelines and very important stuff like that (I have been banging on about that at work, when I didnt follow the same advice myself (in my defence I wrote that site 2 years ago, before I started becoming a coding nazi))

Hopefully I will be able to release a beta soon!

String.Format()

When doing alot of string operations, you might want to consider using String.Format, instead of just concat'ing strings, as this example will show:

CodeSnippetExpression getSnippet = new CodeSnippetExpression("return " + "(" + type + ")this[\"" + FieldName + "\"]");

Might look acceptable, but this new line will look alot better, and be alot easier, since you wont be opening and closing strings left right and center:

CodeSnippetExpression getSnippet = new CodeSnippetExpression(String.Format("return ({0})this[\"{1}\"]",type,FieldName));

As you can see, all you need is the placeholders ({0} etc), then just list the parameters afterwards - its alot easier to read, plus you dont have to wonder if you have closed or opened the "'s properly...