Showing posts with label experience. Show all posts
Showing posts with label experience. Show all posts

Saturday, 17 November 2018

Can you Learn to be a Programmer...

I was asked this very interesting question this week... "Can you learn to be a programmer?"... Lets be clear, the question is can you be a programmer, not can you learn to program.  I believe anyone can learn to use a programming language, to drive their computer to perform a task for them, after all computers are tools and everyone can learn to use any tool.

Be a person trying to write a batch script, create a spreadsheet to do their home accounts, throwing together some python to process a few text files or creating a whole compiled program of some kind, pretty much anyone can make themselves, with a book, a little internet searching and enough time, appear on that bell-curve of skill.

Does this therefore make everyone a programmer?  I think it most certainly does not.  I can pick up a saw and a hammer, I have in my time knocked out some dovetail joints and repaired the odd chest of draws, does that make me a carpenter?.. NOPE... And likewise, if that self same carpenter picked up their laptop and wrote a bit of C# to tally the number of planks they use they are not a programmer.  He has programmed, just as I have knocked some holes in wood, but one does not transgress nor deign to call oneself the other; it would be insulting to the skills in the craft inherent to each's own chose trade.

And there's the key phrase, chosen trade.  Anyone can program, but to be a programmer you've got to choose to apply yourself, either through some personal interest, a passion, experience and ability at the task.  You must strive to learn, to expand and to know your craft.

Very many folks come to try and be a programmer after learning simply to program, throwing a few lines of code together is not enough; certainly not in my mind it is not enough.

Why do I say this?  Well, I sat down this week with several lovely students at my old Alma Mater, and I was bereft to hear from Computer Studies and Systems and even Software Engineering Students that they hadn't really programmed anything before, they asked me "how do you get into programming", "what should I program to get better at it [programming]" and they indeed asked "can you learn to be a programmer".

I of course come from a different place in time, which they pointed out with their shock and awe, when I answered they should write programs to support what they are interested in, if they're interested in video film making, write a video encoder or player, if you like games, write some games, if you're not sure just write some programming tools you can use... Say you (like me) repeatedly have to created code to write our structured data (say XML) then write yourself a tool to generate that code in whatever language you need it (I have one written in Python, which generated XML loaders for C#, C++ and Python itself).  I did this because I needed a tool, specific to my needs.  But these students were a little shocked, they asked "why not just get it from github (or wherever)"... And they're right, you could most likely find exactly the solution you want from else where...But... Would you learn anything doing so?... No.

Folks, students if you are reading, you are there to learn, we are in the programming craft to learn, you will not learn without doing.  So, yes use whatever is at hand, get the jobs done, solve the problems of today, by using libraries or leveraging a package manager to get other resources into your projects.  But if you opt to use a library today (like I used tesseract recently to do some OCR for me) when you're done, take a moment, take stock, look what that library does, think how you might do it, try to implement your own even (variations on the same theme).

In this way you will learn more and experience more and feel more confident in your own skills.

Wednesday, 20 July 2016

Gaming/Software Engineering : The State of Testing

I'm going to have to be a crusty old bloke for this one... But bare with me... When I was a lad you had a 3.5" disk delivering your game to the customer (I was that customer), when I was a kid you had that audio data cassette delivering your game... If you had a bug, you had a problem, because that game never worked for your customers.

This trend, this ethos that you had to test your stuff was necessary, critical even, and I think rightly it was a corner stone of my computing education.

Yes, when I started to program I would just throw a few lines of code together, but as soon as that became a formal skill, with formal training, I had to start to test my code, I had to start to make sure things worked and not just in the normal everyday ways, but obscure, off spec and all possible ways.

This has become a core skill, and I'm sure I annoy some of my younger colleagues when they have a problem; which they have done their due diligence on but they have no idea what their bug or problem is; and I walk along listen, look at it, and come up with the answer, and if not the answer at least a plausible set of leads for investigation.

Its understandable, after all these years, I do know what I'm doing, I have dealt with systems, and hardware, and people and things going wrong so many times, in so many ways sometimes you can just feel what's going to be wrong.

The trouble today I find is it is very hard to express this skill onto others, you can't just impart all your experience to them, and when you sit and write down some of the more off the wall, but important examples, people don't believe you.  Or they believe that you're exaggerated, or they simply don't want to listen.

And so I'm seeing a generation of developers whom don't look to test, I've seen them release, to customers, some horrible, terrible code, which was buggy, broken and even tantamount to criminal.

What do these developers expect to happen?... Well, unfortunately, the half dozen or so I have been dealing with, their 20-24 age group mantra, seems to be "it's Alpha" or "it's Beta" and then the death nell for their credibility from me is "the customers will find it".

The customers will find it... Not the volunteer testers... Not the testing department... Not themselves... the Customer, someone whom has paid for, or bought into, their ideas.

Too many times, too often, and too readily, developers are passing the testing phase from themselves to others.

This was a good thing, about five or ten years ago when this trend began, programs and systems went through some form of testing and then went to open testing, to volunteers, to start that feedback cycle.  But all too often today, it's written and thrown back out there.

I hate it, I really hate it, I really wish some of those developers could stop, look at their projects; and they're good, if not potentially great projects; and then fix their shit.

Tuesday, 23 February 2016

My Surgery - True Experience of an Epidural & Arthoscopy

I'm back, I've had my surgery, and I'm feeling fine...


I had an arthroscopic investigation, which is key-hole surgery, to go into my right ankle joint and remove a load of gunk and file the bone away.

It has left me, absolutely elated, I can walk again!

The above is an image of my bed in recovery, I was the only guy in there that day whom didn't have a general anesthetic, I had a spinal block, or epidural.  And I thought I'd come to these pages and let anyone out there having to have an epidural how I got along.

First of all, I was very squeamish of their working on my spine, I told them so, but really, I was panicking over nothing, if I had to have any work done on my legs or feet again, a spinal block would be my first choice, having a baby?... Get a spinal block!

The injections into the spine start with skin numbing, I had to have alcohol sterilization of the skin too, but you may get iodine (yellow) sterilization.  You then get a plastic cover taped into place and they work on the skin, numbing with a ice cold freeze spray... these are perhaps the most immediately shocking things, they're cold, they're on wide aware skin, and you're heightened by anxiety, but really they are the worst bits!  Which is fab, because the rest is so easy compared to being prepared.

Next you get the injection into the spine, you have to hold very still, let your shoulders be very slack, this is very important, you will be on a heart monitor, so listen to it beeping and try to breath slowly and deeply to slow that beep, you will feel strong pressure, just them pressing on you... It doesn't hurt, but they're pressing you... Get someone to press their finger as hard as they can into the palm of your hand, same thing, but in the bottom of your back... it's uncomfortable.  And this pressure will leave a nice bruise later.

The needle going in, you should not feel, if you do, just say and they freeze spray again, but generally you can't feel a thing, if you're lucky they go in once and you start to not feel anything.

The key feeling is your bum going warm, a hot flushing feeling going down your body, it's very peaceful, and they remove the sticky wrapper on your back and lay you down quickly, because your legs are about to be paralyzed... but it feels nothing but warm and fine.

You get to wait now a moment or two, and they will check you again by spraying more of that freeze spray; I had three stages with the spray, I felt it and it was cold, I could feel it but had no idea if it was cold, and I couldn't feel it at all... At this last stage you can not move your legs, which is a really strange feeling... 

You don't feel anything, you don't know you have legs, there's no feeling of phantom limbs, nothing no weight, nothing... You can reach down and touch your legs, they're warm soft yours, but immovable, but you cant' even feel your own touch.

I couldn't feel my privates, nothing... 

They did the surgery with my awake, I could watch, but felt nothing.

Recovery, well that took longer, nearly 2 hours... As you sit to recover, you start to feel the reverse, the warm feeling starts to wash down out of your bum into your legs, you can feel your buttocks again, make sure you clench them a bit to make sure you can feel them...

About an hour later you can pull your knees up and down, but not lift your foot up at all.

Next you can flex your knee and lift your foot of the mattress.... and finally you can wiggle your toes.

Plenty of fluids is key, hence in the image above, unlike the other patients, I got a saline drip.