Showing posts with label cognitive. Show all posts
Showing posts with label cognitive. Show all posts

Thursday, 24 January 2013

New Blog: http://10000hourcountdown.blogspot.co.uk/

As promised my progress blog.

http://10000hourcountdown.blogspot.co.uk/

For those that do not know, read my first article on the 10,000 hour theory then my second one on getting started again. I essentially have this 'outline plan' to become a master of computing by spending 10,000 hours of my free time studying Computer Science. To make the 10,000 hours measurable, in a way that can be contributed to human knowledge as a whole I set up the 'sister-blog' linked to above that is essentially a work diary, detailing what I studied for how long and a brief overview of what I learnt in that time period.


Sunday, 28 October 2012

API - Application Programming Interface

The API is a term I have seen and heard a million times throughout my travels into the world of computer science and I always had a vague idea of its definition. I understood it mostly to be a kind of go-between for the user and a specific type of program.

 Turns out I wasn't too far from the truth, an article I was recently reading summarised what the API is really well so I thought I'd share it with you.

 Essentially the API is a set of pre-defined rules that programmers have to follow if they want their code to work on a certain application. For instance if you were on the web and you wanted to view a PDF file, you would have to have a 'plugin' that allows you to read PDFs within that browser. The programmer constructing that plugin however would of had to adhere to the rules set by that browser's API to create that functioning plugin.

 APIs are literally everywhere, if you're using Windows right now you may notice how, in all the menus and boxes that come up the style of these interfaces are pretty much the same and that is due to the fact that Windows itself has a general API and again programmers wanting to create programs within windows will have to adhere to the pre-defined rules of that API, making all programs developed under that API have a similar feel.





 So the next time you are considering writing code make sure you are aware of the API for the particular system you are trying to manipulate.

Tuesday, 14 August 2012

The Spirit of Computing


An amazing quote about what computing should be for programmers;

``I think that it's extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think we're responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don't become missionaries. Don't feel as if you're Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don't feel as if the key to successful computing is only in your hands. What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.''




Alan J. Perlis (April 1, 1922-February 7, 1990)



Friday, 6 January 2012

Human reasoning errors

 Having been quite an introspective person naturally I began reading into how to improve cognition, basically make my mind more efficient. The main method through both experience and 'fact' is meditation (I use the term fact loosely as its in part borderline 'pseudo-scientific' claims and theories). I could rant and rave all day about the therapeutic benefits of mediation but this is a blog about computing so I'd recommend you to have a look up yourself, I think it helps sort your head out in all kinds of good ways.

 Back to the topic at hand, human reasoning errors, what I mean by this is how we make those super fast judgements and find alot of them to be massively wrong and some of them to be completely correct, with no seeming order to this process. So I went on an internet adventure exploring what is really going on when these weird processes happen with no seeming conscious control. It turns out conveniently enough that the mind is very similar to a computer in that it stores data based on past experience and relays them automatically to fit similar situations in the present. Sometimes this saves time sometimes it doesn't. This process is labelled under a subject known as Heuristics.

Incredibly interesting article explaining the reasoning behind heuristics and cognitive biases;



 A quick summary from this article; essentially the human brain has so much sensory input to handle that it has its own coping mechanisms which aid it in its daily function. The mechanisms are based, so we believe, on a kind of complex association system in which a certain action (e.g opening a door) is stored in the long term memory and when a similar scenario is encountered again for example reaching another door, the mind automatically assumes that this door must be like the 'door' object of previous encounters so the same principles are assumed to apply and the same action is therefore executed. Whilst this system is very economical and efficient it obviously has numerous limitations.


 An example demonstrated in the text is 'a group of people asked to work out a sum by way of a 5second guesstimate .The example shows just how we will engage our brains to apply previous rules and assumptions to the problem.

 The Question:
    Consider the product of the series:

9 x 8 x7 x 6 x 5 x 4 x3 x 2 x 1 = ?
vs.
1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 = ?

 The typical answers: 

9*8*7*6*5*4*3*2*1 'usually comes out at an average of 4000'
however,
1*2*3*4*5*6*7*8*9 'usually comes out at around 500'

The actual answer is 362,880.

This very basic example shows just how the association function is sometimes limiting and how easy it is to engage it.
The article also explains the different categories of heuristic failure and when and how they are limiting. Examples such as logic assumptions and ignorance to statistics due to emotive association (terrorism vs cancer).

 Worth a re-read every now and then to avoid problem solving genercism as it will occasionally be defeatist.
Shown below is the cognitive process by which people are encouraged to avoid bias.



 If this doesnt make immediate sense, consult your mind in an introspective manner, or read the article

Thursday, 5 January 2012

Creating the foundations

I want to become a certified Computing Master.

I want to become a certified Computing Master because I am currently a very underachieving, undisciplined, average Joe that has a decent enough mind to understand everything I apply that mind to but consistently wastes his potential and has no shortage of people telling him he is doing so. I decided I need to break my pointless cyclical lifestyle and have made the choice to do something that will make me or break me as a human.(Well maybe not break me physically but you get the idea; something that if I don't reach it I will be a serious failure to myself). So I had a look around the world I live in and picked one of the hardest yet useful skills available to me and decided as both a personal/spiritual quest to accomplish something that right now would seem impossible; 'earning a Phd in Computer Science within the next decade'. Whilst in ten years this may not seem like an impossible challenge, for me, being a lazy normal guy that never was considered anything special academically, this is a big mountain to climb.

I feel I have the motivation, in that I have been feeling pumped to do this for at least a year (an example of how bad my discipline is, thinking something and wanting something for a whole year without ever properly acting on it) I have decided now to kick myself into gear and start doing it.

Obviously I am aware of time and realise that to achieve something like this I need to put every spare hour under the sun to productive use if I am to be anywhere near my goal within the time limit set. I need a big plan, like a check-list of everything developed so far in the field so that I don't just 'get a Phd.' but really contribute something incredibly useful for the human race as a whole.

To be a certified Computing Master.




So I am going to develop this blog as a progress blog, documenting where I am at, where I am going and to summarize all the knowledge gained so far on my journey. Also I want it to be another example to people that extraordinary people are just normal people that never gave up.

 I like that last line, think I might get it tattoed on my face.