Showing posts with label adult learning. Show all posts
Showing posts with label adult learning. Show all posts

Wednesday, 28 November 2018

Budding Programmers.... Subscription to Learn

Harping back to my prior post about learning to program, when I spoke at my old Uni, I spoke to a lovely trio of ladies, whom wanted to be programmer/computer folks... And one thing struck me, was how narrow their knowledge was.

When they asked me how I got into programming and I explained that when I learned to program in the 1990's there was no github, indeed there was no internet, you could not just go and download a program or join an open source project.  If you wanted tool, and had no BBS dial up to find someone with something like it, you wrote your own.

I wrote code to record kills in games on the Atari ST, I wrote text editors for the ST and DOS (EGA graphics FTW), I write 2D painting programs for DOS.... I distinctly remember my college tutor seeing my using DOS interrupt 11 to control the mouse and his saying "you're the first person I've seen work that out"... I didn't work it out by trial and error though, I worked it out by reading, about the DOS platform, about BIOS, about my machine.

Today folks seem to know more about the bits they're interested in, than the whole machine, because they're not driven out of the comfort zone to explore and push the boundaries.  If today you're only interested in writing a neural network, you don't have to get your hands dirty with nodes or sigmoids or anything really, you can just get google to do the thinking for you, indeed they can even provide the solution.

So, I say folks, if you are of a technical bent, whenever you do a task, even if you use a pre-formed library, take time to explore what it does for you, look at your machine could it do things better.

A notable interview technique I've seen in action (and indeed practiced) is to give someone a multiple looping piece of code and ask them to edit it... It works single threaded, but could be multiples of times faster, I want to know if they think about threads and lambdas, and then I also want to know whether they think about the machine itself... Do they think about the number of cores, to optimise the number of threads being sprung up?  Do they think about cache hits and cash orientation of data (row verses column order)?....

And I want to know if tech folks read this, and they don't know about cache hits, or finding the number of physical processors, that they take heed and go look at and think about how to accomplish those points!

To that end I have a set of sites for such folks to subscribe to, along with my pages here of course...




And then look for conferences in the language you want to study... Lets say C++....


C++ Now (formerly BoostCon) 

Many folks pay to attend virtual ticket tours of game conventions, why not also take the time to follow the computer languages?...

Thursday, 30 March 2017

People : Some Life Advice (Reading)

My grandfather was quite a serious fellow, an absolutely lovely fellow, he was a (or even "the") chief quarter master for the Royal Mail in Nottinghamshire before he retired.  However, a mere five years, after he retired he had a diagnosis of lung cancer and was dead shortly thereafter.  The first major figure in my life to pass away.

I was eighteen, had just started university, and being honest with myself it affected me deeply, both personally, mentally and spiritually.  Personally as my mother then assumed she was the helmsman of the family, never have I seen the monkey leading the organ grinder more ineffectually.  Then mentally, he was gone, the one great intellectual figure in my life was gone.

His intellectual influence was deeper on me today than perhaps I ever realised, I remember when I was around three or four he showed me how to write the figure 8.  I distinctly remember his being behind me, his affirmative arms either side of me as he intoned an 8 before me, and I copied.  There was always paper to doodle on and pens in a draw, they were the main "play thing" of a wet or dank day, of which there are many in Britain.

He taught me to pronounce things, and to this day I can slap on a lovely accented English, very polite, which he taught me; and which my wife adores when I use it within a telephone conversation.  It empowers me to escape my strong, rough, Nottingham accent whenever I wish, both are part of me, one through nature the other nurture.

I also remember his buying books, or handing me books, the first I remember were the complete Encyclopedia Britannica, a lovely red leather bound set; which must have cost a fortune in the early 1980's; I'd sit and paw over these pages for hours, years later I remember some kid at school going on about French writers, I instantly named Victor Hugo... Thanks to those hours spent with my nose in a book.  Kids today can look things up instantly with the internet, but watch out for the kid who avidly reads anything, they might just be expressing their interests early.

Another day he handed me a huge book, it was a cheat book, with every answer to most all the crossword questions of the day, he was teaching me a lesson... You could sit and think about the intricate layout of the crossword, how things meet, depart and conjoin.  However, you could also just get the bloody answer.  This has become a massive power for me, I feel enabled, even if I don't know anything about a topic, or it's currently not on my mental radar, it is but a quick read away.

I know this, I'm sure reading this, you know it too.  However, how many people out there look at someone judge them and then think they can't do the same as them?  I'd suggest a lot of them do... When really they might just need to read the right book, or take the right advice, don't close yourself off from these people, embrace them, help them, let them help you too.

Monday, 25 April 2016

Embrace C++14 Please Mr Developer

Today I've had to spend sometime setting up a Xenserver, to host some virtual machines, the moment I was done, of course the first request I had was for a developer to have a Linux machine running a compiler.

I was quite excited, in a C# & embedded C strong company to hear "C++" as the reply to my query "what language are you going to use?"... However, my excitement quickly evaporated when I asked, "What version of C++ do you need?"... And he replied "There are different versions?"

After I had explained, yes, yes indeed there are... I took a look at his code for him, and pointed out naked pointers:

char *something = new char[28];
memset (something, 0, 28);
delete something;

I quickly explained, as kindly as I could, that this code is not only wrong, but very very old hat, and I introduced him to the standard library:

#include <string>

std::string something;
something.resize(28);
memset(&something[0], 0, something.size());

And his eyes opened a little... He asked what version of C++ is this in???... C++98... and his crest fell again, realising it was very old tech, which he had no idea about.

So I pointed him to C++14 and explained smart pointers as something for him to try out:

#include <memory>
#include <iostream>

namespace Xelous
{
class Test;
using TestPtr = std::shared_ptr<Test>;
class Test
{
public:
void Hello()
{
std::cout << "Hello";
}
};
}

int main (int p_argv, char** p_argc)
{
Xelous::TestPtr instance = std::make_shared<Test>();
instance->Hello();
std::cout << " World";
}

So, once this was done, I left him reading a copy a Tour of C++ by Bjarne, and told him to read all of Scott Meyers books.

This is a sad state of affairs for a programming & technology environment, especially when I know the chap earns more money than me, and as polite as I was I did want to just ask him to get his coat, and I'd slip into his salary grade & comfy company car (a perk I don't get).

Not least because I think the chap whom sent me off to speak to this fellow treats me a little more like a trained monkey, and they've themselves no idea about virtualisation, servers or development, beyond say using Turbo C++ from the command line in DOS 6.22... And unfortunately, things have moved on a lot since them...

Anyway, this leads me to tomorrows post, which I'm drafting, I set this C++ developer on the path to C++14, and installed him a Ubuntu 14.04 virtual machine on my little server... He was amazed, until he wondered over to me and pointed out that he had to manually add -std=c_++14 to the build options, and that sometimes the code-completion crapped out on him... Seems older Codeblocks instances fall on their face, and the default version of gcc/g++ on Ubuntu is 4.8.x and we need 5.x for C++14.  The next post will cover going through setting this up from the command-line.

Tuesday, 15 September 2015

GCSE Maths (8300) Foundation - A modern resit

I'm a little disappointed with myself, a friend of mine has just taken, or should I say, retaken his GCSE Maths papers, some twenty two years after this dismal first time around, and he's chuffed he got himself a C.

Now, he worked really hard at this, and good on him, I got a C in GCSE maths the first time around, and I am one of those people who think exams now are easier than back then, so my friend challenged me to open the exam board sample exam paper and do it...

So, I did, now I this was with no rehearsal, the Foundation paper, and unlike my exams, no calculator!... Yes, when I were a lad you always had your scientific calculator, but this exam has three papers, two with and one without, I was challenged to the one without (ironic for a computer programmer).

I set about the paper, and after 2 hours had finished, this was a 1 hour 30 minute paper, so a little worrying already, but we'll let that slide, and I also noted I had difficulty with fractional maths without a calculator, which I myself have always always reached for.

I had significant difficulty too as I've forgotten about simultaneous equations, I was proper scratching my head, the feeling that I knew it once was there, but the practical was gone... So I expected to have lost 6 marks already...

I was stunned therefore when told I'd scored just 50 from 79 marks.

Interestingly though one of the questions my mate did say my answer made more sense than the one in the answer paper, I'd used common sense rather than explain how I picked a median group... so he'd deducted two marks as there were no workings, but I'd gotten 1 of the 3 marks available for just being right... I personally feel I should get all three marks for just being right, lets face it, if you put down a good answer you knock confidence!  And I was right, somewhere in my noggin I crunched the figures and I was hard-wired to be right, why should that be penalised?

I've always thought the right answer should get full marks, and only if it's the wrong answer should the working be looked at, but this marking scheme was "A1" they got the answer, but only is "M1 and M2" in the workings... and I'm like, no... A1, they got it, it was right, they passed, stop pussy fucking footing around, they were right... And then if they were wrong, see how far wrong, and feed that back into your course for next year, if 20% of candidates get such and such wrong, but the workings look right, your course might have a fault, or you might have to clarify the teaching material, not punish the candidate who was right all along!

It beggars belief.

But I was truly surprised how hard the exam was, harder because of no calculator for me, but for a foundation level exam it was pretty comprehensive to me, and it has given me a better respect for those getting A's and A*'s today... They must bloody work hard, or at least have learned the procedures for the questions by rote.

The question I have, which remains is, what does 50/79 mean in terms of a grade?... Hmmm... I recon I'm in the C category again, just like I was first time around... Hey ho.