• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
Collapse

You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:

  • You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
  • You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
  • If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.

Previously on "Coding... where to start???"

Collapse

  • expat
    replied
    I was slightly nervous typing in my first lines of more-or-less COBOL code for many years, but it was like riding a bike

    So I went off and looked at my website hits for Jan 2009:
    #reqs search term
    ...
    5509 cobol
    ...
    4005 pl/sql

    Hmm, don't think I'll depend on pl/sql for work after all.

    Leave a comment:


  • expat
    replied
    Originally posted by Sysman View Post
    ...The problem when I moved to COBOL and had to abide by "Though shalt not use GOTO" programming standards was that you ended up setting flags everywhere and having to test them later. It could sometimes be extremely difficult to track down where a flag was getting set or corrupted and that could be a nightmare (and that ain't counting compiler bugs).

    Here's a swift example:

    Code:
    main-loop.
         read input-file at end go to main-exit.
    * a bit of record manipulation here, but not much
         write output-file.
         go to main-loop.
    main-exit.
         close input-file.
         close output-file.
    Obviously you don't want those GOTOs wrapped around a gazillion lines of code; the aim is to have something readable.
    You're supposed to use PERFORMs, not convert spaghetti code into straight-line code.

    Code:
    main-program.
           perform main-loop thru end-main-loop
               until 88-input-file-end.
           close input-file.
           close output-file.
           stop run.
    main-loop.
           perform sub-read-input thru end-sub-read-input.
           if not 88-input-file-end
           then
          * a bit of record manipulation here, but not much
           write output-file.
    end-main-loop.
           exit.
    sub-read-input
           read input-file at end move 'x' to 77-input-file-end.
    end-sub-read-input.
           exit.
    with appropriate 77/88 levels and of course the obligatory
    Code:
    PROGRAM_ID. EXPAT01.
    that strikes fear into the hearts of the IT departments of 3 continents.
    Last edited by expat; 3 February 2009, 09:18.

    Leave a comment:


  • NickFitz
    replied
    The whole "GOTO considered harmful" business got out of hand a long time ago (although it's now thankfully irrelevant in most languages). So many people are too literal in their interpretation of prescriptive statements of this kind, and completely miss the point.

    Dijkstra was saying that GOTO was harmful because it was frequently used to create unstructured code: spaghetti code can only be created if the language supports random jumping about from place to place. Of course it was, and is, possible to write well-structured code in a language that forces one to rely on GOTO for transfer of control; the point Dijkstra was making was that people relied on GOTO as a way of avoiding the arduous task of actually thinking about how to properly structure their code, instead simply hacking together an unholy mess of disorganised functionality and thinking that they were successful when the most egregious bugs no longer manifested themselves very much.

    It's a bit like the "<table> considered harmful" business in HTML. As a rabid standardista, I am firmly of the belief that using <table> and associated elements for the purposes of controlling the purely visual layout of a web page is epic fail. However the <table> element and its associates do actually have a valid reason for being: to represent the structure of tabular data. Yet even now one occasionally comes across somebody on a mailing list who has some clearly tabular data - say, a five-day weather forecast, or a set of test results - who goes all round the houses trying to find a way of representing it all using <div>s and a bunch of CSS, because they read somewhere that "tables are bad and kill kittens". The irony is that they actually decrease the semantic value of their markup by not using tables as needed.

    Similarly, in languages that are moderately deficient in control structures, GOTO can be used appropriately to better express the intention of the code.

    The fundamental point is that it's not the word/tag/construct that's "harmful", it's how you use it - as Susan Norkin could tell the author of the naughty words filter here on CUK

    Leave a comment:


  • Sysman
    replied
    Originally posted by expat View Post
    Nothing wrong with GOTO except that it doesn't fit some people's structuring systems, and it does offer one more way to write bad code: but that's hard to stop anyway.

    Dijkstra proved that you don't need GOTOs, but it is arguable whether he proved that you shouldn't use them. For example, he also said that a procedure must have only one exit point: I say if you know you're done, GOTO that exit point. Any other way is harder to read, not easier.
    Going back many years now, I have used languages where GOTO was the only construct available and spaghetti code was inevitable. I still occasionally use GOTO for scripting languages where I judge that it makes the code readable, for example in a tight read/write loop. The problem when I moved to COBOL and had to abide by "Though shalt not use GOTO" programming standards was that you ended up setting flags everywhere and having to test them later. It could sometimes be extremely difficult to track down where a flag was getting set or corrupted and that could be a nightmare (and that ain't counting compiler bugs).

    Here's a swift example:

    Code:
    main-loop.
         read input-file at end go to main-exit.
    * a bit of record manipulation here, but not much
         write output-file.
         go to main-loop.
    main-exit.
         close input-file.
         close output-file.
    Obviously you don't want those GOTOs wrapped around a gazillion lines of code; the aim is to have something readable.

    Originally posted by expat View Post
    The real crime is COBOL's ALTER: shot at dawn for using that (but opinions may differ). For those who don't know, that was a command that, when executed, reprogrammed an existing GOTO elsewhere in the code, so that it now goes to somewhere else, not where it says it does.
    I once worked with a guy who had used ALTER to ensure that initialisation code was only executed once, but he was programming for performance rather than maintainability. For less time critical programs we avoided it like the plague.

    Leave a comment:


  • xchaotic
    replied
    Originally posted by mailric View Post
    Xml?
    XML is not a programming language per se. Sure I claim to be an XML specialist and you can process and transform it with XSL or Perl or govern the structure with DTDs/Schemas/NVDLs/XDefinitions etc but there's very little to know about the XML itself.

    Besides it is a bad idea as, despite the fact XML is used as an interchange format in many if not most recently coded apps, companies and recruiters are mostly looking for language specific skills, such as Java or C#.

    Leave a comment:


  • lightng
    replied
    ITIL = New money for old rope. Rope that is covered in crap.

    Leave a comment:


  • JoJoGabor
    replied
    ITIL is worthless except in public sector orgs who think its the bees knees, just the excuse they need for creating unnecessary process and paperwork.

    I work in infrastructure projects, the most useful programming languages for Microsoft technology are Powershell or VBscript. If you are on the Linux/Unix/VMware side either Perl or linux shell script.

    Leave a comment:


  • expat
    replied
    Originally posted by TheFaQQer View Post


    10 REPEAT
    20 PRINT "Hello"
    30 UNTIL FALSE

    Never use a goto!
    Nothing wrong with GOTO except that it doesn't fit some people's structuring systems, and it does offer one more way to write bad code: but that's hard to stop anyway.

    Dijkstra proved that you don't need GOTOs, but it is arguable whether he proved that you shouldn't use them. For example, he also said that a procedure must have only one exit point: I say if you know you're done, GOTO that exit point. Any other way is harder to read, not easier.

    The real crime is COBOL's ALTER: shot at dawn for using that (but opinions may differ). For those who don't know, that was a command that, when executed, reprogrammed an existing GOTO elsewhere in the code, so that it now goes to somewhere else, not where it says it does.

    Leave a comment:


  • SP-Man
    replied
    Sm

    If you background is in support, why not go in for Service Management using ITIL. This would give you much more clout as you have been on the support side for a while.

    Leave a comment:


  • Zippy
    replied
    Get started with a scripting language and database (Perl is not the best place to start) and make yourself a semi-useful web app e.g. recipe database, family history site

    I agree with the point that its all about frameworks these days and I'd be thinking about swatting up on Agile and associated philosophies/tools.

    Leave a comment:


  • Jog On
    replied
    Originally posted by gingerjedi View Post
    I’m a bored support monkey who is fed up with the dwindling rates and centralisation of this sector, it used to be fun but I’m little more than an admin boy these days so…

    From a complete novice perspective where would be a good place to start learning to ‘code’? VB? My only experience is a little BASIC on a BBC B about 25 years ago and some fiddling with HTML.
    Originally posted by DimPrawn View Post
    If your background is support, then I would have thought a scripting language (VBScript, Perl, who knows) would be the best fit with your current skills.

    Maybe VBA (scripting office applications) too.
    That's exactly what I'm doing - and some application packaging. VB scripting and Office scripting you can learn in conjunction with your existing skill set to automate much of the MS admin stuff as opposed to going in a completely new direction from scratch.

    I'm learning PHP/MySQL for plan B as well which is making VB scripting, javascript and powershell a lot easier to pick up.

    have a look at Winautomation who will let you download a free 30 day trial. It's a drag and drop scripting tool and macro recorder that's helped me learn a lot from just messing around with scripts, variables, loops, excel spreadsheets, SQL databases etc.

    I'm doing scripting CBTs in this gig and spending a lot of time with the guy who's doing all the AD/Exchange scripting for this domain migration. I'm aiming to confidently have it on my CV by the end of this gig.
    Last edited by Jog On; 28 January 2009, 11:22.

    Leave a comment:


  • Bunk
    replied
    Originally posted by dang65 View Post
    I dunno, we've got Firebug now. God's gift to web development.
    WHS

    Firebug only came out a couple of years ago and I honestly can't remember how the hell we got any work done without it.

    Leave a comment:


  • minestrone
    replied
    My 2 cent is that if I were to train someone as a programmer now I would not bother with a specific language but give them a cut of a technology stack to work on. For example picking java randomly I would rather give them a small bit of each of JSPs, servlets, struts, hibernate and SQL in that time than try and get them to appreciate the finer points of Java's OO features.

    I think the frameworks and the tools are the most important thing now and the language is simply the sauce to pour over the meat.

    Leave a comment:


  • dang65
    replied
    Originally posted by TimberWolf View Post
    Debugging programs written in Javascript would be a challenge though, as error console messages won't be as friendly as those you'd get from within a proper debugging environment.
    I dunno, we've got Firebug now. God's gift to web development.

    Leave a comment:


  • TimberWolf
    replied
    VB or other BASIC variants would provide a nice gentle introduction to programming, but you'd need a compiler or interpreter to run the BASIC programs. Javascript is another possibility, as code would run straight from any browser and editing can be done in any text editor, right now. There are loads of tutorials on how to get started on the web programming in javascsript (e.g. "hello world" programs). Debugging programs written in Javascript would be a challenge though, as error console messages won't be as friendly as those you'd get from within a proper debugging environment.

    Leave a comment:

Working...
X