Archive for Downsizer For an ethical approach to consumption
 


       Downsizer Forum Index -> IT Matters
Aeolienne

Programming languages

I'm wondering how easy or practical it would be to learn any of the following: PLC, SCADA, SQL Server, VB and Java. I've been advised that my experience in Fortran will help. Trouble is, where am I going to find a class? The local FE college and WEA aren't teaching anything more advanced than basic keyboard + mouse skills. Does anyone know of any reputable online tutorials?
tahir

Why, is I guess the main question I'd ask.
vegplot

Programming languages? Welcome to Hotel California
Aeolienne

I used to work in a certain branch of the scientific civil service until they fired me in May. So I have to look for a new job while I attempt to sue them for unfair dismissal.

The list of programming languages come from the website of an operational research consultancy to whom I thought it might be worthwhile submitting a speculative application (as OR is supposed to be a good match to my skills set and interests profile, according to Prospects.ac.uk). Apart from that I've had one interview to date at which I was asked "How have you kept up your technical skills since leaving your previous employer?". So it's killing two birds with one stone really.
jocorless

Make sure with VB that you look at alongside .Net or C# - Same set of skills but much more employable

SQL Server is just Microsoft's idea of SQL - so whilst it's a little different anyone with any SQL experience should be able to pick it up

This is probably the best place to start:

http://msdn.microsoft.com/en-us/default.aspx

Java - Where to start - It's a massive language and has got multiple different flavours - Best place to start is the Java Ranch site http://www.javaranch.com/ - Loads of stuff on there for learning the basics

As for PLC - Can't help there - Haven't gone near one since Uni and tbh - no desire to either - maybe someone else could help
marigold

I suggest you take an aptitude test before trying to learn a programming language, otherwise you're likely to be wasting your time/money on the training.
Northern_Lad

marigold wrote:
I suggest you take an aptitude test before trying to learn a programming language, otherwise you're likely to be wasting your time/money on the training.


If you can do Fortran then I'm fairly confident that the rest won't be a problem.
marigold

Northern_Lad wrote:
marigold wrote:
I suggest you take an aptitude test before trying to learn a programming language, otherwise you're likely to be wasting your time/money on the training.


If you can do Fortran then I'm fairly confident that the rest won't be a problem.


Missed that, sorry, but I believe my advice is still good - there are enough programmers with poor aptitude for it around already.
Aeolienne

marigold wrote:
I suggest you take an aptitude test before trying to learn a programming language, otherwise you're likely to be wasting your time/money on the training.

Where can I find one?
marigold

Aeolienne wrote:
marigold wrote:
I suggest you take an aptitude test before trying to learn a programming language, otherwise you're likely to be wasting your time/money on the training.

Where can I find one?


Google "programming aptitude test" - sorry I can't recommend anything specific as it's nearly 30 years since I was tested! Most will probably be trying to sell you something or will cost a few quid - just use your instinct about what sounds good. I'll ask a friend who may have some suggestions, but she's away working at the moment, so I'm not sure if/when she is picking up emails.

The local Further Ed college here does a HNC in Computing, but it's part-time over two years and not very specific about what students will learn, so that's probably not much use to you. Have you asked your Jobcentre about courses?

Sorry to hear about your unfair dismissal problems - hope you reach a positive solution soon.
Aeolienne

marigold wrote:
Aeolienne wrote:
marigold wrote:
I suggest you take an aptitude test before trying to learn a programming language, otherwise you're likely to be wasting your time/money on the training.

Where can I find one?


Google "programming aptitude test" - sorry I can't recommend anything specific as it's nearly 30 years since I was tested! Most will probably be trying to sell you something or will cost a few quid - just use your instinct about what sounds good.

Eek, instinct - I have Asperger's so not sure if I can trust my judgment.

marigold wrote:
Have you asked your Jobcentre about courses?

The only courses I've ever heard mentioned at the Jobcentre have been numeracy, literacy and basic computing skills - certainly nothing pitched at the level of a maths graduate. I could ask the advisers about this list of languages but considering how not a soul there understands the work I used to do I'm not getting my hopes up.

marigold wrote:
Sorry to hear about your unfair dismissal problems - hope you reach a positive solution soon.

It won't be "soon". The hearing at the civil service appeals board will be held some time between 25 January and 19 Match next year. Until then I'll have to explain to every potential employer why I left my last job.
Northern_Lad

Aeolienne wrote:
Eek, instinct - I have Asperger's so not sure if I can trust my judgment.


Ah, well that may actually be a good think for programming - you need to just see facts and logic and not just the things that you want to.
Barefoot Andrew

This tutorial might be useful for getting started with Java. It's useful, but a teeny bit thin on the ground in places. Still, there are Java folk here who can help.

To get going with Java you'll obviously need some software tools, and the 'development kit' and you can get everything you need as a 'bundle' in a single download. The two main choices in this regard are NetBeans (which I use) and Eclipse (which Jo uses). These may deem intimidating at first but they're not really. To get NetBeans, visit www.netbeans.org and click the 'download IDE' button - you'll get everything you need software-wise to make a start.

I agree with NL: if you've done Fortran you'll likely be practised in thinking logically and a test of your programming aptitude probably isn't necessary.

A.
jema

Agreed if you have programmed before then you should know more about your aptitude for it than a test will tell you.
oldish chris

marigold wrote:
Northern_Lad wrote:
marigold wrote:
I suggest you take an aptitude test before trying to learn a programming language, otherwise you're likely to be wasting your time/money on the training.


If you can do Fortran then I'm fairly confident that the rest won't be a problem.


Missed that, sorry, but I believe my advice is still good - there are enough programmers with poor aptitude for it around already.


During my 35 years of IT, I came across scores of poor programmers - most of whom had taken an aptitude test!

It was my experience that programming could be taught, being methodical helps, which in turn can be helped by learning a programming method, e.g JSP, http://en.wikipedia.org/wiki/Jackson_Structured_Programming or OOP http://en.wikipedia.org/wiki/Object-orientated_programming. From what I can make out this sort of stuff is unfashionable.

I understand that there are some good tutorials on You Tube.
marigold

If you decide to go down the self-study route (and TBH learning a new programming language isn't that hard if you already know one), find yourself a real application to write, preferably more than one - demonstrable practical experience will impress potential employers far more than just completing a training course. One way of getting real experience is through voluntary work. Alternatively you might manage to wangle some unpaid work for a small business which is willing to swap a bit of teaching for some hours work.

If you decide to create an application of your own, do it thoroughly - write a specification, document your code, imagine it being altered at some time in the future by someone else, write a test plan and execute it, write training materials, get someone else to test it/review your code...

There are probably loads of geeky language-specific forums to hang out on and ask questions (check first for their general tone of helpfulness towards newbies).

Good luck!
Barefoot Andrew

Very sound advice Marigold.
A.
AnneandMike

A simple aptitude test is....

do you like maths?

Over the years I've done Fortran, Basic, Slang21 (?), VB, a bit of C, assembler. Programming requires a logical mind and determination to solve (often) complex problems like any decent maths. It is not difficult to learn a new one, particularly with the support materials now available.
jema

Biggest problem is keeping the darn things apart Rolling Eyes How many others find their javascript having $ variables like in php?
marigold

Thank you BA Smile .

I'm fekking useless at maths and I HATE it Laughing , but I do like problem solving. Interestingly the leaders of my IT training course said that, contrary to their expectations, language graduates tended to do better than maths grads. Obviously that was just based on the people who did that particular course (and not all were graduates), but I think it's a mistake to assume that you need to have a scientific or mathematical background to succeed in IT.

It's all different to when I trained though - then there were company-run courses such as I did, where organisations bred their own IT (or rather DP - Data Processing - staff) and the government funded TOPS courses (can't recall what TOPS stood for now!). Nowadays I imagine the most usual route in is via a Computing degree.
Aeolienne

AnneandMike wrote:
A simple aptitude test is....

do you like maths?

Over the years I've done Fortran, Basic, Slang21 (?), VB, a bit of C, assembler. Programming requires a logical mind and determination to solve (often) complex problems like any decent maths. It is not difficult to learn a new one, particularly with the support materials now available.

I managed to do a degree and a master's in it.
vegplot

Aeolienne wrote:
AnneandMike wrote:
A simple aptitude test is....

do you like maths?

Over the years I've done Fortran, Basic, Slang21 (?), VB, a bit of C, assembler. Programming requires a logical mind and determination to solve (often) complex problems like any decent maths. It is not difficult to learn a new one, particularly with the support materials now available.

I managed to do a degree and a master's in it.


You've passed the aptitude test.
bagpuss

marigold wrote:

It's all different to when I trained though - then there were company-run courses such as I did, where organisations bred their own IT (or rather DP - Data Processing - staff) and the government funded TOPS courses (can't recall what TOPS stood for now!). Nowadays I imagine the most usual route in is via a Computing degree.


I agree, I dislike maths mostly due to being taught it quite badly. It doesn't stop me being a computer programmer for my living

At the end of the day try a couple of online tutorials for the languages you are interested in and see if you think you can pick them up quickly.

If you think you can spend a few days before an interview for an appropriate job doing lots of practice both for basic logic and for the syntax of the languages themselves then when sat in a coding test be honest if you don't know the syntax but make sure you can explain the logic
Barefoot Andrew

Maths skills aren't a requirement for programming as such, but you will need to be reasonably adept with base arithmetic: being able to think in bases 2 and 16 should become second nature and you'll be disadvantaged if it doesn't.

jema wrote:
How many others find their javascript having $ variables like in php?


I recognise your pain! After delving into PHP land I find myself wanting to put dollars in front of Java variables too. Fortunately, NetBeans brings the error of my ways to my attention immediately with a red underline Very Happy

I've got a possible firmware job coming up in the autumn which may require a not insignificant amount of assembler. A simple editor with no syntax highlighting? However will I cope...? Wink

A.
orangepippin

bagpuss wrote:
I agree, I dislike maths mostly due to being taught it quite badly. It doesn't stop me being a computer programmer for my living


Barefoot Andrew wrote:
Maths skills aren't a requirement for programming as such, but you will need to be reasonably adept with base arithmetic: being able to think in bases 2 and 16 should become second nature and you'll be disadvantaged if it doesn't.


I agree with Bagpuss and disagree with BA. I certainly can't do base 2 or base 16 arithmetic, and even base 10 is a struggle sometimes! As a programmer and also having recruited many programmers, in my opinion the key distinguishing "aptitudes" are firstly interest, and secondly the ability to think things through clearly. In that regard I reckon being able to write essays (e.g. in history / geography etc) and marshal a logical argument is more relevant than maths. Programming is a very abstract mental thing to do, and you have to be able to "get into the groove" of what you are doing.

However if you are interested in database programming then one mathematical concept that definitely is relevant is that stuff about Venn diagrams - being able to understand the relations between elements of your data, what bits are related and what bits aren't etc.
marigold

Agree with OP - being literate helps a lot when it comes to being a useful programmer in a large organisation. I've known more than a few programmers who were experts in particular languages/applications, but who tended to write intricate code, never documented anything and were incapable of sharing their knowledge with anyone else. They tended to be held in awe, but, IMO, were not as useful as less "clever" people who understood the value of creating programmes that were easy to maintain by any competent programmer.

Mind you, no programmer can do a decent job if the specifications they are working to are crap...
jema

There is an awful lot of code out there that is just about impossible to understand Sad

It is a tricky area, take the code:

Code:

while (fgets(line, 256, fp) != NULL) {

    if (line[0] != '"')

      continue;



    IP = atoi(line + 1);

    minIP = IP;



    // find , for maxIP

    i = 0;

    while (line[i] != ',')

      i++;

    i += 2;

    maxIP = atoi(line + i);



    // find the country

    for (j = 0; j < 3; j++) {

      while (line[i] != ',')

        i++;

      i += 2;

    }



    // save the country code

    strncpy(CountryCode, line + i, 2);

    CountryCode[2] = 0;



    * (unsigned int *) IPB = IP;

    findLink = (LINK *) &links[IP >> 16];

    if (findLink->minIP == 0 && findLink->maxIP == 0) { // first link

      findLink->minIP = minIP;

      findLink->maxIP = maxIP;

      strcpy(findLink->CountryCode, CountryCode);

      findLink->nextLink = NULL;

    } else {

      while (findLink->nextLink != NULL) {

        findLink = findLink->nextLink;

      }

      prevLink = findLink;

      findLink = findLink->nextLink = (LINK *) malloc(sizeof(LINK));

      memallocs[memallocPtr] = (char *) findLink;

      findLink->minIP = minIP;

      findLink->maxIP = maxIP;

      strcpy(findLink->CountryCode, CountryCode);

      findLink->nextLink = NULL;



      // see if links can be coalesced

      if (((prevLink->maxIP + 1) == findLink->minIP) && strcmp(prevLink->CountryCode, findLink->CountryCode) == 0) {

        prevLink->maxIP = findLink->maxIP;

        prevLink->nextLink = NULL;

        free(memallocs[memallocPtr]);

      } else {

        memallocPtr++;

        if (memallocPtr >= ALLOC_COUNT) {

          printf("Increase the allocation of memallocs !\n");

          return  memallocPtr;

        }

      }

    }

  }


That scans an IP to Country database into a lookup structure. It is painfully flawed by the lack on comments (not me I might add). But even if commented has got a certain level of complexity.
It is however very efficient, at least I can't think of a solution that is better, and code like that needs to be efficient.

The problem arises when programmers have no sense of perspective or no ability to actually write the complex stuff. You either get code that is unmaintainable as it is too complex, or too slow as someone has not got the skill it takes to deal with hash tables, linked lists and the other arcana of "real" programmers.
Barefoot Andrew

orangepippin wrote:
I certainly can't do base 2 or base 16 arithmetic, and even base 10 is a struggle sometimes!


Must be my mis-spent teenage years hacking around with Z80 opcodes Laughing
A.
marigold

When it came to tricky undocumented code I usually had to draw pictures to make sense of it 'cos I'm a visual sort of person.
vegplot

marigold wrote:
When it came to tricky undocumented code I usually had to draw pictures to make sense of it 'cos I'm a visual sort of person.


It's a technique we use a lot. Our 'programming' starts with drawings, flow charts and story boards especially when it involves user interfaces.
marigold

vegplot wrote:
marigold wrote:
When it came to tricky undocumented code I usually had to draw pictures to make sense of it 'cos I'm a visual sort of person.


It's a technique we use a lot. Our 'programming' starts with drawings, flow charts and story boards especially when it involves user interfaces.


There's a lot more to programming than writing code Very Happy
Barefoot Andrew

Absolutely. There's drinking tea whilst pondering a problem and its solution. There's gawping out of the window whilst pondering a tricky problem and its evasive solution. There's cursing when something doesn't work. There's pouring a glass of R&S when something still doesn't work. Etc etc Laughing
A.
marigold

Sigh! This thread is making me miss working in IT Sad . And I don't just mean the money, I'm remembering the sheer pleasure of it (when I wasn't too constrained by stupid Project Management tools and could just get on with the job).
orangepippin

Yes, programming is endlessly interesting, great to be paid to do something you like doing anyway. The new programming editors are now so good that a lot of the repititious drudge (which is an inevitable part of the job) is now much easier or automated, leaving the programmer with quite a nice ratio of fun stuff to boring stuff!

One other thing that I have always thought good about programming is that it tends to be fairly evenly split between male/female. That is probably consistent with the alleged view that men cannot multi-task, because I'd say programming is tends towards being an extreme single-tasking activity.
Barefoot Andrew

marigold wrote:
Sigh! This thread is making me miss working in IT Sad


OK, you and Sean can team up and finish my work for me whilst I relax Wink
A.
vegplot

Barefoot Andrew wrote:
Absolutely. There's drinking tea whilst pondering a problem and its solution. There's gawping out of the window whilst pondering a tricky problem and its evasive solution. There's cursing when something doesn't work. There's pouring a glass of R&S when something still doesn't work. Etc etc Laughing
A.


and that's before 9:30.
Aeolienne

I've taken the plunge and signed up for the Open University module "Object-Oriented Programming with Java" (M255). Wish me luck!!
sean

Good luck.
marigold

Good luck! Very Happy I had a twinge of temptation reading through the course description Shocked .
jema

Aeolienne wrote:
I've taken the plunge and signed up for the Open University module "Object-Oriented Programming with Java" (M255). Wish me luck!!


Please remember that not every damn thing is an object Wink It is a pet gripe of my in programming that you get OO mania with some programmers.

If in the past you would have done it with a module and a data structure, then make it an object.... If inheritance is useful with it, then rejoice Smile because in the past you would have struggled, now the object will do the work for you in that regard Cool

But you will still find that not everything fits the mould and you have mainline code and function calls that don't obviously hive off into OO programming, that does not mean that you have failed to be clever enough to spot how to make things objects, it simply means they probably are not sensibly there.
orangepippin

jema wrote:

Please remember that not every damn thing is an object Wink It is a pet gripe of my in programming that you get OO mania with some programmers.

I agree. I think OO programming only really works in situations where an organisation has gone through a large-scale business process modellling exercise and has created objects for its business processes. It then makes sense to instantiate those objects within programs. I think for smaller-scale developments OO is overkill and unnecessary. However from the point of view of learning, it is very useful because most modern programming languages have OO concepts (often added on, rather than built-in from the start).
Barefoot Andrew

And anyone who thinks you can't do OO-style programming in C is badly confused.
A.
jocorless

The worse part of that is when a system has allegedly been written using OO principles but the lead programmer has decided that he knows better and has written everything so that nothing ever breaks - which is good until you realise that there is no published API and all the method signatures contain massive Request/Response objects with many layers of tightly coupled code underneath like spaghetti and aren't validated so you don't know that a call is invalid until the whole thing blows up in the customers face because there is no way that you can possibly test all the available paths

I'm so glad I've changed jobs!
jema

Barefoot Andrew wrote:
And anyone who thinks you can't do OO-style programming in C is badly confused.
A.


To date my best OO code was a graphics library capable of rendering the same display on an Xwindows display as it could on a variety of pen plotting devices including optimizing for reducing pen swaps and dead traversal distance when plotting to a pen device, all whilst still using the higher level calls available on Xwindows, and of course all transparent at the API level.
This was entirely in 'c'. It would have been easier in C++, but what is the real difference at the end of the day between:

graphicObj->drawLine(x,y,x1,y1);

and

glib_drawLine(&graphicStruct, x,y,x1,y1);

Semantically one is cleaner, and you can have private variables, and of course in the latter example the drawLine code is going to have to access a function pointer array to get to the desired code for drawLine (e.g. to implement inheritance). But beyond that there is little practical difference.
sean

This thread is reaching previously unseen heights of incomprehensibility to the layperson. (Or depths, not sure which direction you measure incomprehensibility in.)
Barefoot Andrew

We aim to please Wink
A.
jema

But only in the most abstract uninstantiated manner.
Barefoot Andrew

Laughing
A.
Emyr

Fortran and Cobol aren't dead languages... Fortran 2003 is probably the most recent spec in use, Fortran 2008 still work in progress as far as I can tell.

There are still businesses married to cobol and fortran systems, and I spotted a few graduate positions which offered full cobol training for fresh young minds...
Barefoot Andrew

Blimey... not wishing to do down anyone else's profession but my COBOL stint was possibly some of the most tedious programming I've ever done...

A.
marigold

Barefoot Andrew wrote:
Blimey... not wishing to do down anyone else's profession but my COBOL stint was possibly some of the most tedious programming I've ever done...

A.


And I bet you never had to do it on coding sheets, punched cards or using ROSCOE on terminals with response times measured in minutes Laughing .
Barefoot Andrew

Thankfully I was spared that Wink Actually the most interesting part of that era of my life was 'converting' IBM 370 assembler to C and/or x86 assembler. The actual COBOL bits were avoided at all costs Laughing
A.
       Downsizer Forum Index -> IT Matters
Page 1 of 1
You must set the ad_network_ads_377.txt file to be writable (check file name as well).