Re: Advice on my new job?
Welcome to the Forums.
I can't believe I read the whole thing! All I can say is that I have similar experiences with "Experienced" programmers that were making 15 to 25 dollars an hour more then me and I couldn't believe that they actually called themselves programmers. Arrrg! They were using GoTos all over the place and had very very limited knowledge of what an API was!
ADODC controls are for begining programmers, let along use 23 of them!!! OMG!!! I have never used a single one. I always program my ADO binding manually. I also cant believe that the experienced programmer could not figure out how to program correctly the VAT and had to put a disclaimer stating to double check his work. How embarassing. I would never want to purchase something from your company if they cant calculate sales tax, no offense.
My suggestion is to either look for a new job or after your familiar with their code and operations that you have a meeting with the boss. That experienced programmer needs to be FIRED ASAP! But watch yourself to make sure he doesnt turn on you and you loose your job. I bet the experience programmer taught the other programmer that you replaced and when the guy questioned the experienced one he got fired? Maybe try to find out why?
I wish you the best of luck with this and NO your not correct in thinking that they are going to pop out and say suprize and show you the real code. They probably dont know what REAL code looks like! ;)
Stay here at the Forums and you will be able to save your sanity and post questions allot. We will all be very glad to help where we can.
Good luck and Merry X-Mas. :thumb:
Re: Advice on my new job?
Hey,
Thanks for the reply, it’s nice to confirm my own suspicions. During my previous job I was a sole developer and was thinking to myself that, possibly, this current job is the way things are done, no matter how strange it seems.
I know that the previous programmer went out for lunch one day and never came back and that his predecessor left under similar circumstances.
The established programmer seems a likeable enough person and as such I don’t want to do anything that would mess him about. But, saying that, I’ve tried talking to him about things without starting a shouting match and it always ends up with him telling that it’s the way he does such and such. At that stage I’m left with the option of telling him he’s full of it or just nodding and accepting it. And at the moment I’m more prone to nodding.
I think I’m going to have a quiet word with the boss about some of their practices and try to be diplomatic. Something along the lines of “this practice will lose you money in the long run” etc.
Again, thanks for your reply. It’s nice to get some feedback from someone who’s been “out there” in the industry.
Rgds
Adagio2004
Re: Advice on my new job?
Good read - sad story.
I've come from almost 3 decades of developing commercial applications (my own software house since 1986) - mainframe/BASIC and COBOL - and now finally, for the past 3 years, VB with MS SQL SERVER 2000.
We spent almost half of the first year thinking about what we would do - conventions, concepts, techniques. Prototypes that were terrible. Concepts that worked great.
This is standard R&D - without doing this, the software will fail.
I would personally bring up some of this with the boss - talk about conventions and consistency. I cannot imagine that the boss, who is the database developer, would not appreciate this.
Discuss what has worked at places you have been at before. Be constructive - offer policy changes that you will create to make things better.
Re: Advice on my new job?
szlamany's got a good point - be constructive. I was still reeling from the read. It does sound like the other two programmers left because they could not make any headway with answers like 'this is the way I do it and thats all there is to it'. Probably start out trying to get small changes since the resident programmer seems to avoid change. Then work your way up to the meeting with the boss.
HTH
Re: Advice on my new job?
My own gut instinct is that, at least, the previous programmer may have got the same ‘vibe’ that I am currently getting and aimlessly toddled along and wrote the spaghetti code that seems to be the norm here rather than rock the boat.
I find myself thinking of the future though. I do not want to end up in a situation where a customer who uses our software ends up with VAT inspectors crawling all over them because of a noticed discrepancy in a calculation somewhere. I also would not like to end up in a situation were the established programmer leaves and I am left to sort out the tangle of code that I believe I will be faced with. In both situations I would end up with the finger of blame pointed at me (jointly in the first instance).
One more point btw. The established programmer claims to have been programming since he was about 10 (about 20 years ago). I have been programming professionally since I was 16 (about 20 years ago too). I started off with games software and as such had put that on my CV for this job. The established programmer knew this and seems to be interested in games programming, at least as a hobby. One day he “picked my brains” about techniques for this and that and I mentioned linked lists. His response, and I quote, was “That means absolutely nothing to me” and so I explained the concept.
Now, apart from the games programming jobs I’ve had, I’ve had absolutely no face to face contact with any other professional programmer apart from this guy. But I had assumed that knowing about things such as linked lists, stacks, binary split searches etc was fundamental in being a programmer. I’ve always believed that programming is not about the language you use but rather about the concepts and techniques you bring to the table. I understand that different environments may need new techniques but, at heart, all techniques are built from variations on about 10 to 20 fundamentals. As szlamany said, they spent a half year thinking. To me, a programmer sat with his arms folded can be much better than a programmer who is pressing 120 keys a minute all day. It’s probably better using the old phrase, “work smarter, not harder”.
But, I was taught linked lists in school during A level computer science. Since then I’ve picked up most of the fundamentals of programming myself from reading books and the net. I am thinking it’s not quite right that a programmer has never heard of linked lists even with any sort of ‘terminology barrier’ since they are such a common thing?
I could go on for pages, sorry for the length of these posts, but from my perspective, the nine days I have spent with this firm have been extremely surreal.
Rgds
Adagio2004
Re: Advice on my new job?
I agree - a couple of dozen concepts, used over and over again, make a good programmer. Binary searching, linked lists - coding in ASSEMBLER so that nothing appears to be magic anymore.
I still feel the boss will find you a valuable addition to the team - and maybe someday you and he will be making big $$'s with a good product.
Good luck.
Re: Advice on my new job?
I didn't learn about linked lists until I took some C++ courses. They just weren't taught 20 years ago. I have since implemented them in VB, as they are helpful. I suppose in twenty years, programmers will have a hard time figuring out what we are doing. Things change in computers.
I wouldn't try too hard to start coding their way. Once you get something done that works, maybe they'll look at it and like it. You have to take that chance. If it works out, then great. If it doesn't, you can be glad that you don't own that company.
Re: Advice on my new job?
Quote:
Originally Posted by dglienna
I didn't learn about linked lists until I took some C++ courses. They just weren't taught 20 years ago. I have since implemented them in VB, as they are helpful. I suppose in twenty years, programmers will have a hard time figuring out what we are doing. Things change in computers.
I wouldn't try too hard to start coding their way. Once you get something done that works, maybe they'll look at it and like it. You have to take that chance. If it works out, then great. If it doesn't, you can be glad that you don't own that company.
You had poor instructors then. Lists (ordered, linked, double linked and so on) are all basic. Back in 1980 we used the Knuth's series of books on algorithms - this stuff is from 1950 - nothing has changed at all - nothing ever will. The SQL I'm finally using in production right now is from SYBASE - from decades ago.
We had to develop our own RDBMS system on the mainframe - our own "data field equation" processors. Imagine building your own INDEX files and every time a data record is written to a table - imagine having to handle bucket splits when the new keys don't fit. Imagine doing that in 1985.
The only difference I see now is that when I started there was no college majors for Computer Science - now that there is, we end up with people I wish I never hired.
I've seen people on this forum ask about the fastest sort - and then debate it - like sorting is new.
Re: Advice on my new job?
That’s good to know, I have been worried that I’m thinking badly of the established programmer because of a possible terminology barrier, ie using different phrase to describe the same thing. I know I experienced some of that when I started talking about things like “week end procedures”, “credit control reports” etc. I just surmised that things like linked lists were universally called that. I do know that I had to explain the concept and he did not seem to know it previously. But, I will think about that for a while now that I know that that isn’t actually the case. Thanks.
Again, it’s my relative isolation in terms of contact with other professional programmers that puts me at a disadvantage here. If I had walked into this job and been confronted with dll’s that we had to use and told things like “putting SQL in form modules is frowned upon” then I would have no problems. It’s my lack of a “yardstick” that has worried me for these past nine days. I know what worked for me in the past but have no experience of the situation in the industry in general.
It’s good to get this feedback since I was worried that maybe I was missing something and would put my foot firmly in my mouth when I talked to the boss. At least now, I know that I’m not thinking stupid thoughts and that what I’m thinking is not too far of the mark.
I’m a bit wary of this situation and definitely do not want to get the established programmer fired out of hand, I like the guy. So, when I talk to my boss I’ll try to be diplomatic and rather than point out flaws I’ll try to point out possible improvements. I think it would be a bad idea to go in and say that they’re doing everything wrong. As such I reckon it will take a while, as Robdogg said.
Oh, and btw, that first form I was working on was about 10 textfields and 2 grids doing double duty as listboxes with an “add all, remove all” thing. It originally had about 2000 lines of code behind it. So far its down to around 500 lines of code and I’ve got a couple of classes to handle data access that I know I can reuse in other places. With a couple of new classes I’ve developed over Christmas I’m sure I can get that down to around 200-300 lines of code and since the new classes are general purpose and involve building dynamic SQL I reckon I can solve (at least partially) some of the locking problems. Eg now I’m only filing out what the user has edited rather than the whole record. I still prefer making sure two users don’t edit the same data but I can fit in with the way this company works.
Oh, and the ADODC control count is down from 23 to zero ;)
Rgds
Adagio2004
Re: Advice on my new job?
Hehe szlamany,
I know where you’re coming from. But the thing here is that Dglienna hadn’t heard of the concept of linked lists until relatively recently, thus it is possible that the established programmer in my place had genuinely not heard of them in X years of being a programmer. Whereas I was thinking, “hmm, the guy don’t know about linked lists, exactly how long has he been programming?”
I’ve been there programming on the metal, as it were. I remember writing code that relied on in depth knowledge of how a TV picture is rasterised and the timing of the electron gun to tease 16 colours per character cell out of a machine that could only display 2 colours per character cell normally. I’ve not gone so far in the business field but have used C-Isam and written what I called a “screen driver” for unix/dos which was not a kick in the ass from what Access and VB give us nowadays.
They call programming, software engineering. And as such I treat myself as an engineer. I want to produce good code. Good in the respect that it does what is expected of it. Good in the respect that it works solidly. Good in that it is based on sound principles. Good in that it is relatively easy to maintain. And good in the respect that it doesn’t make anyone’s life harder, be they developer or user.
I can understand what Dglienna says. If you read some VB books on the market they don’t mention linked lists. For most tasks they are largely irrelevant. The same thing happens with sorts, why bother coding a quicksort from scratch when you can stick your data in a disconnected recordset and have it sort it for you.
Yes, I believe it’s good to have the knowledge of what’s going on behind the curtain. But it isn’t always necessary.
I’m just looking for advice here, and don’t want to turn this into an argument over what should be known and what doesn’t need to be know mate.
Rgds
Adagio2004
Re: Advice on my new job?
But I did learn about ISAM files, and I wonder how many here understand them? Back in the days of tape drives, being able to jump between records was a hardware problem, anyways. In high school, they still had a teletype machine doing 30cps. We had terminals dialed into an HP system. The computer science teacher knew relatively little about computers, so only a few of us really picked up on the jargon.
Those were the days. I would have killed for a computer when I was a teen. Now, my sisters kids have had them all of their lives. My 4 year old niece was better at using the mouse than my dad was. She would move the mouse 5 seconds BEFORE the sceen saver would kick in. I don't know how she did it, but she did.
Re: Advice on my new job?
Just thought I’d give you guy’s an update.
Had a talk with the boss between Christmas and New Year’s. Pointed out some salient points, the 800 lines of code thing, lack of locking and how that is a major point that differentiates single user and multi user systems, lack of libraries etc.
He seemed receptive enough. I didn’t mention the VAT problem directly but mentioned how poor programming techniques could cause incorrect information to be filed and could lead to potential repercussions from clients.
Like any boss, he’s interested in getting the software out the door yesterday. That I can understand.
Had a few chats with the established programmer since then. I had a few double takes, not worth going into, but on the whole he said he agreed with me on most subjects. I was trying to lay the foundations for building a common library and the process we would use for putting stuff into that library so as not to end up with procedures that did basically the same thing etc. I was also putting forward ideas to get code of the forms in terms of creating classes for business logic and the possibility of using wrappers for data access.
As I’ve said, it went well but near the end he said something that struck me as being really silly. “I know where you’re coming from but really we haven’t had the time or the resources to accomplish this to date”.
I found out that he’s been working there for six years, and they have very few windows based systems (if any complete ones) actually out in the field. I say, if complete, due to the fact that I’m currently working on a part of a system that they have only showed me its character based COBOL equivalent of. The six years was from him and the number of systems was one of the first questions I asked the boss.
Now, I worked at my previous job for twelve years, and at a rough count I have written around 25 systems from the ground up, spanning Unix, DOS, Windows, Access, Delphi and Visual Basic. Fair enough, some of these systems re-used large portions of existing systems, after all a customer account is a customer account is a customer account etc. But for 6 years, not to have at least one complete system (I’m talking, ordering, invoicing, stock control, purchase ledgers, nominal ledgers, and account handling etc here) seems decidedly bad to me.
Oh, one thing that really winds me up, and I’d like you guys opinion on it…
They have this bee in their bonnet about alphanumeric codes to reference things, possibly a bit of backstory is needed here.
I have, in the past usually used numeric codes to reference everything. IE, if a user wishes to call up Bananas to add them to an order or to edit the details for that product, they would type 1234 in a code field. In the older systems in place before I started my last job, the user would have had to have a paper list to find which code to use. In current systems I had adopted the technique of using what I call a ‘picker’. EG, the user is on a customer code field and doesn’t know the code they need, they press F3 and an address book style window pops up, they click on one of 27 buttons (A..Z and everything else) and they get a list of the customers beginning with that letter (we’d also employ a sortcode system where SMI would be the sortcode for JOHN SMITH, and the buttons filtered on sortcode). Each picker was custom coded so that a user could find stuff easily, product selection was based on groups and sub groups, then a list of the relevant products to choose from, open invoices were displayed in date order showing relevant details etc. Basically, although we had numeric codes everywhere, the user just needed to press F3 and they could use the system without knowing a single code for anything.
Now, first day at this new job and the thing that strikes me is that everything is alphanumeric codes. A customer called JOHN SMITH is referenced by SMI. If there is also a BRIAN SMITH, he could have SMI as his ref too. If a user types SMI then BRIAN SMITH would appear as the selection, if JOHN SMITH was the desired choice, then the user would have to use a back or forward button to go through the list until they hit the right one. I’m only talking about the field you key to call up a customer record so that you can amend that customers details here. If you are amending a product record and need to key a group that this product is in and it turns out you have multiple groups that the user has set as FOOD then they have no choice but to use a generic search popup (called up by F3, I loved that bit). This search involves them selecting a field to search on and then typing the search string.
It’s hard to sum up, but if you’ve used Access form wizards, they’ve basically duplicated the functionality that you end up with from that, but in VB. Only it takes them 800 base lines of code to do it. I’ve mentioned this but got a couple of incredulous stares from the boss and the programmer.
Any of you guys got any opinions on the reference thing, I’d be interested to hear them.
Rgds
Adagio2004
Re: Advice on my new job?
6-years is a lot of time. During our first year we did small-VB apps for simple tasks and prototypes that we threw out.
We found one of the biggest tasks the effort required in VB to customize a form. You could go the "code-forever-and-800-line" method - then adding one more text box to the form takes two days to accomplish. Or, as we decided - we developed a "general maintenance" program - reads the "screen" object size/position/name from the database - so adding a new textbox to a screen is a DB change - not an app change. The name of the object self-binds to the STORED PROCEDURE recordset.
The whole reason I'm even telling you this, is that I appreciate the effort required to code in the VB world compared to the "non-object-based" and "non-event-based" world of the mainframe. This general maintenance VB client allows us to create a brand new application with basically no BASIC CODING. To us this is the ultimate in "reusability".
With all that said, our customers did not appreciate the R&D work the first two years - saw nothing from it - but we knew we were defining business rules and application concepts/conventions that would allow us to be successful for a long, long time.
Now, as far as numeric vs alpha reference codes. Having two-letter codes that the user puts in makes sense to me - for a table that has 10 items. Having an alpha-code for a customer name makes no sense to me at all.
In all our "reference code lookup textboxes" the user enters either the "reference code" (numeric or alpha - no fixed rule) OR the "description text". Pressing ENTER will either fill the field, or bring back a drop-down box with choices. So if a smart user knows to put code "1", they put code "1" and move along. If a novice user puts "SMI" then the drop down appears with all the "SMITH,xxx" names and they choose one and then move along.
We are all about "minimizing" keystrokes in our apps - since they are mostly clerk like - loading hundreds of health claims a day type stuff.
Personally, I believe that auto-number and other ACCESS-like concepts are for small-type systems. We like to have "obvious" keys on our tables where possible. For instance, I've seen a student-class system where the courses were represented with integer-keys. People know that 0011 is ENGLISH 11 and 4011 is MATH 11 and so on. So we store the course as a 4-character field. The system we replaced stored the course as an integer auto-number field. The key on our STUDENT/CLASS table is multi-fields - YEAR+BUILDING+COURSE+SECTION+TIMEVECTOR+STUDENTID. The other system had it as STUDENTID+CLASSID. Our concept allows for clustered tables that group data in the table in what we consider the the best method. Plus a user browsing through data with EXCEL, for instance, can actually make sense of it.
Re: Advice on my new job?
I hear where you’re coming from szlamany.
What I was talking about was the following form…
Product code : ______
Description : ___________________________________
Group: _____ ________________________________
Note that the underlines to the right of group denote a display only field. This is the group code description.
You key in a group code, and the group code description is filled in so that you can visually confirm you have keyed the correct group code.
They way I always looked at this was that the user either knows the group code, or they don’t.
If they don’t, then they press F3 and get a list of groups, they (maybe scroll and) click on the one they want then click on OK (or press ENTER). The group code is then sent (via sendkeys) and it’s like the PC has keyed the code for them.
If they do know the code, they key it.
The codes I’m talking about are unique. I always used numeric codes, but if the system for picking codes is good, then the user doesn’t need to know any codes.
What I found really bad was the fact that with the alphanumeric coding system, the user could set up many codes as the same thing. The user chose the codes. There was nothing to stop them making every group code ABC. And that’s the way this company works.
Then, when they have to enter the group code in the above form, they are forced into the search facility.
I understand the possible problems with having unique codes etc that can arise. But we always worked on that issue, we had routines for generating those codes, it weren’t really rocket science.
As another point about these codes, they have a standard whereby, as you type a code, the system tries to do a complete match based on what you typed so far. EG, if you have ABC on file and you key A, the form pulls up the entire set of information for ABC. If the next key you press is J and you have AJK on file then the form is filled out with the info for AJK. I’ve pointed out how this is a no go for broadband access etc but I feel I’m playing a losing game.
Rgds
Adagio2004
Re: Advice on my new job?
From what you described - they cannot get out of that "dumb-terminal" full screen edit mode of mainframes of 20 years ago.
That's a shame.
We have one school district that has 1000+ teachers/admin/secretaries connected to SQL over a WAN during a typical school day. If we didn't research the effect of "size" of data transmission we would be burned right now.
I really wish you the best - it seems this company must have some reason to be developing - big customer base? - and maybe with some better direction they will have a product that performs and succeeds.
Ps. That type a letter - bring up all the records - type the next letter - fine tune the list - that is not the way it works in SQL and VB. Client server takes you far away from the data and the user must realize that a [VIEW] button to fill a drop down list is the way it works. No more free lunch - it costs too much.
Re: Advice on my new job?
I’m still not sure about the size of the customer base. All I know is that the boss has said they have a lot of Cobol based systems out there (read character based) and are under pressure to deliver Windows versions.
I’ve been here about 3 weeks or so, and I’m driving a cart and horses through almost every aspect of what’s going on here. But, I’m going to stick it out and see what happens, I like a challenge ;)
The established programmer didn’t know what a class was until today, and now he’s actually working on one! So I might be having a good influence ;)
We’re having a big meeting first thing Monday, and I’ll pop in here and give you an update. If nothing else it’ll give someone else in my position a frame of reference.
Rgds
Adagio2004
Re: Advice on my new job?
Well, I missed the update, sorry about that.
That was a couple of weeks back. But now we’re working on an even keel for a change.
I had pointed out a few inconsistencies in the database previously, and now the boss decided to test these out. I’m talking here about a table with around 5 million records.
Well the tests came out exactly as planned. Boss was well chuffed. I heard him say to the existing programmer, just as I was heading out for a smoke, “It’s nice to see a bit of speed there”
Then, at the end of the afternoon today, the existing programmer was basically asking me for advice on how he should proceed in rewriting everything he’s done to date.
F**k a result ;)
It’s times like these that make the hard slog all worthwhile
Rgds
Slaihne
Re: Advice on my new job?
Smile, you're on Candid Camera!!!
Re: Advice on my new job?
No fooling. If you Google your username, this thread comes up #4. Hope nobody at the job knows your username!
Re: Advice on my new job?
Quote:
Originally Posted by dglienna
No fooling. If you Google your username, this thread comes up #4. Hope nobody at the job knows your username!
lolol What were you doing to have found that out? :lol:
Re: Advice on my new job?
Glad to hear things are looking up.
PS. I've also noticed in the past that GOOGLING for my username finds lots and lots of hits - mostly on VB forum - but the older ones come up against dead pages - ones that simply don't add up to what the "search" said they would.
Re: Advice on my new job?
I wondered about the Candid Camerat comment, and tried it.