A friend of mine forwarded this site to me that presents the skills you need to become a web developer but as a skill tree you’d see in a RPG video game like World of Warcraft or Guild Wars.

A friend of mine forwarded this site to me that presents the skills you need to become a web developer but as a skill tree you’d see in a RPG video game like World of Warcraft or Guild Wars.

Keeping with the Coursera theme I seem to be fond of, I found these self study non credit courses offered by Stanford through Coursera:

as well as a Computer Science 101 course.

The database course at least might compliment my efforts towards the Microsoft certification I mentioned in one of my previous post:

**Microsoft Technology Associate (MTA)**

So in both my Learn to Program: The Fundamentals and my Introduction to Systematic Programming – Part One they introduce the concept of design recipes – basically a step by step way to write certain programming features, like functions for example.

So I wanted a way to recall these recipes within the shell so in the beginning I can always follow the recipe when I’m designing, in this case, functions.

So in python, it was easy, just created my own module and wrote the following functions (one expandable one so when I Learn more recipes I can add them in, and a second one for immediate use):

def recipe(n):

if n == “htdf”:

print(“Step One: Examples”)

print(“Step Two: Type Contract”)

print(“Step Three: Header”)

print(“Step Four: Description”)

print(“Step Five: Body”)

print(“Step Six: Test”)

else:

return “”

def htdf():

print(“Step One: Examples”)

print(“Step Two: Type Contract”)

print(“Step Three: Header”)

print(“Step Four: Description”)

print(“Step Five: Body”)

print(“Step Six: Test”)

But I was having trouble in Racket(BSL), although I cheated a bit by using an image, it doesn’t really work as a function… this is what I have so far but I haven’t been able to emulate what I did in Python in the Racket(BSL) shell DrRacket:

(define (RECIPE n)

(if (string=? n “HTDF”)

[I put a jpeg of the receipt in point for here]

“false”))

Now the problem with my cheat is that I can’t call the function remotely, and have been using the (require module_name) that loads it right at the beginning and not as a callable function.

So if anyone has any ideas on how to replicate what I’ve done in python in racket(BSL), I’m all ears!

I was reminded by a friend about this site I told them about months ago, I think I remember seeing it in this TED talk by Mitch Resnick called Let’s Teach Kids to Code. The site was called CodeSpells. Essentially it’s a fun way to teach people how to code with a Fantasy type game environment.

Here’s the intro:

“The character wakes up in a strange place populated by gnome-like creatures. She has been sent here to learn the ways of magic. The gnomes are in need of her help, they know a little magic, but don’t have enough to accomplish simple tasks. They need her help, and she needs theirs.

With some guidance from the gnomes, she takes her first faltering steps with magic. She begins to master her power bit by bit, while trying to prepare for a scary and dark future.

Through a series of quests initiated by the denizens of the Enchanted Crater, she begins her training as a master wizard.”

Essentially master wizard in this case means master coder/programmer.

So I did a little digging and found some more games that do the same (see related article below).

- Games that teach programming: A brief overview (gamasutra.com)

In my Introduction to Systematic Programming Design – Part One class offered through Coursera there was a post in the discussion forum about Codecademy, so I checked it out. It looks like there are some great resources and some free courses offered as well for programming languages like JavaScript, jQuery, HTML/CSS, PHP, Python, Ruby and APIs.

As the 2010 version of Excel, although currently a standard will eventually be replaced by the 2013 version, I’ve decided to change my focus from MOS: Microsoft Excel 2010 towards MOS: Microsoft Excel 2013. This will keep my skills using the latest generation of the Excel platform and keep the credential for longer as most organizations haven’t yet and probably won’t migrate for sometime to the 2013 versions.

To that end, I got a refund on my amazon digital purchase for the 2010 version of the study guide and replaced it with this one (which I confirmed with Microsoft themselves is the official study guide:

MOS 2013 Study Guide for Microsoft Excel

They also recommended some online training through the following links:

Riholtz this morning posted as part of his morning reads this article from the blog Seeking Wisdom – I’m posting it here as a reminder to myself to keep challenging but keep your mind open to the ideas of others:

Blog post – The 5 Elements of Effective Thinking

The actual book can be found here – The 5 Elements of Effective Thinking

- 10 Tuesday AM Reads (ritholtz.com)
- Five Elements of Effective Thinking (farnamstreetblog.com)

Today’s TED talk on their rss feed was a fun romp:

They’re millions of digits long, and it takes an army of mathematicians and machines to hunt them down — what’s not to love about monster primes? Adam Spencer, comedian and lifelong math geek, shares his passion for these odd numbers, and for the mysterious magic of math.

AdamSpencer_2013.mp4 (56 MB) http://feedproxy.google.com/~r/TEDTalks_video/~5/4zqRxKASme8/AdamSpencer_2013.mp4 |

A friend of mine sent me the following, in response to the following question:

Apparently Quora had a great answer to this question by Steve Denton at the following link: http://qr.ae/IL5Dj

I felt the whole thing deserved a repost, so I’m posting it here –

**Steve Denton on Quora wrote the following:**

*It all depends what the questioner means by ‘want[ing] to become very good at math’.*

*How do you define ‘very good’? And what sort of mathematics do you want to learn, and why?*

*Let’s address the second question first. With any learning activity – and particularly with self-directed learning – it is important always to have the objective of that learning in mind, firstly so that you can plot an efficient course towards it (thereby hopefully avoiding wasting your time on unproductive detours and irrelevant distractions), and secondly so that you’ll know when you have reached it.*

*Mathematics is a kind of language (in fact, it is many, many different but interrelated languages), and so there are parallels between learning mathematics and learning languages. When you decide to learn a foreign language, you must first choose the language you want to learn, and this choice will be guided by such considerations as the following:*

*The language’s potential usefulness to you personally, i.e. is it widely spoken, or required for your job, or do you plan to visit the country (or countries) where it is spoken?**The language’s aesthetic qualities, i.e. is its spoken form particularly pleasing to the ear (e.g. many people like Italian because of its varying rhythm and expressive tonality), or its written form and alphabet especially pleasing to the eye (many people like languages with – to them – ‘exotic’ non-Latin alphabets such as Cyrillic, Arabic or Japanese)?**The language’s level of difficulty, i.e. is it an easy language to learn, in terms of its pronunciation, written form and grammatical structure, or a difficult one that you might perhaps choose if you are looking for a challenge?*

*Mathematics is a vast and constantly expanding discipline, with several major subject divisions (e.g. algebra, geometry, analysis, topology) and hundreds of subdivisions and specializations. Just as with languages, different branches of mathematics may have different degrees of usefulness to you, or different aesthetic qualities in terms of the beauty of their central ideas or their written form. And they will certainly present different levels of difficulty in terms of their grammar, vocabulary and conceptual abstraction.*

*So which should you choose? To sharpen your focus on just those areas that might be of interest and relevance to you, ask yourself some basic questions, such as:*

*Do I want ultimately to obtain academic qualifications in mathematics, or simply to study it for mental stimulation, as a purely recreational interest? (Language analogy: Do I want to become a professional linguist, translator or interpreter, or simply to learn a language for pleasure?)**Do I want to be able to use my mathematical knowledge to solve practical problems, or am I not interested in its practical applications? (Language analogy: Do I want to use a foreign language to understand books, music or films produced in it, or to communicate with native speakers, or just to learn it as an end in itself?)**Do I know which areas of mathematics interest me? Do I even appreciate how many different areas of mathematics there are?*

*If you are aiming to study mathematics at college/university to degree level, or further, then your mathematical study will need to be sufficiently broad to cover the sorts of topics you are likely to meet in a typical undergraduate mathematics course. The mathematics curricula of different universities will differ in their choice of topics and the depth to which they are developed in a degree course, these differences being dictated to a certain extent by the interests of the lecturers, the research activities of the mathematics (and physics) faculty, and whether the course is more geared towards pure or applied mathematics. But all mathematics curricula will have certain broad subject areas in common. The easiest way to discover what these are would be to visit the websites of various university maths faculties and look at the subjects they teach. These are likely to include the following topics (many of which overlap each other) as a minimum (listed in no particular order, though some topics are more advanced than others, and have certain prerequisites):*

*Set Theory**Group Theory**Algebra (linear, abstract, etc.)**Differential and integral calculus of a single variable**Differential and integral calculus of several variables**Ordinary differential equations**Partial differential equations**Real Analysis**Complex Analysis**Topology**Discrete mathematics (combinatorics, graph theory, etc.)**Number Theory**Geometry (projective, differential, etc.)**Probability theory**Statistics (statistics is often taught as a discipline in its own right, rather than as part of a maths course).*

*Generally, the more prestigious the university or college, the more advanced the material in its degree courses will be, so some (e.g. Ivy League (US) and Russell Group (UK) universities) will introduce topics at the undergraduate level that others (e.g. smaller ‘provincial’ universities) would only cover at the postgraduate/Masters level.*

*If you want to use mathematics to solve practical problems, then your choice of mathematical subjects will depend on what sort of practical problems you are interested in. But all ‘practical’ mathematical problem solving will require certain basic skills, and familiarity with some of the more generic tools of mathematics, such as algebra, geometry, calculus, combinatorics, probability and statistics.*

*If you are thinking of studying mathematics purely as an intellectually absorbing pastime or to ‘improve your mind’ (it serves both purposes for many ‘amateur’ mathematicians), but are unsure of which areas of mathematics you might be interested in, or of how many different areas of mathematics there actually are, then I recommend that you try to do a broad, high-level survey of the field by reading some nontechnical books on mathematics for the popular science market. These should preferably cover many different areas of mathematics, devoting – say – one chapter to each, rather than focusing on a single mathematical area or theme for the entire book (such as the many books on Fermat’s last theorem). There are many such ‘general survey’ books on mathematics, but I particularly like – and highly recommend – those of the British mathematician Prof. Ian Stewart, many of which I read when embarking on my own mathematical education (I was 99% self-taught in mathematics before going on to study it at university). Ian Stewart writes in a very clear, accessible and entertaining style, and really brings his subject alive for the reader. I can particularly recommend the following:*

*http://www.amazon.com/Letters-Yo…**http://www.amazon.com/Concepts-M…**http://www.amazon.com/Here-Infin…**http://www.amazon.com/Mathematic…**http://www.amazon.com/Natures-Nu…*

*Two other excellent books that follow the mathematical-area-per-chapter format are:*

*Once you have got an idea about the different areas of mathematics out there, you can decide (perhaps based also on your answers to the first two questions above) whether you want to focus on one area alone, or a few particular areas, or be a ‘generalist’ and study a wide variety of different areas. [1]*

*Now that you have decided which areas of mathematics you want to study, you need to answer the first question I raised: Exactly how ‘good’ do you want to become as a mathematician? Once again, the language analogy is helpful: When you are learning a foreign language, you have to decide what level of proficiency would be sufficient for your needs. Do you want to be able to converse confidently and fluently with native speakers (difficult – for most people)? Do you just want to be able to understand books, music or films produced in that language (easier)? Or do you simply want to be able to use the language on vacation, to read road signs and restaurant menus, and to ask and answer simple questions in hotels, banks and shops (easiest)? The same sorts of questions apply to mathematical proficiency; do you want ‘conversational fluency’, or reasonable literacy when reading mathematical books, or just to be able to ‘get by’ and read the road signs? Well, only you can answer these questions, of course.*

*I’ll conclude with a few words of advice regarding a general strategy for learning mathematics from books. [2] *

*Firstly, understand that you cannot read a mathematics book in the same way that you read a novel. Reading a mathematics book should be an active – and interactive – experience, not a passive one. You will be required to follow detailed arguments and – often complex and subtle – lines of reasoning, and to continually answer questions that the text poses to you. In particular, you will be required to check for yourself that you understand all the mathematical derivations, ideally by reproducing the calculations and confirming the results for yourself. You will therefore need a notepad in which to do your own calculations as you read the book. *

*If you own the book, then make extensive use of annotation; underline, highlight or otherwise mark significant words, sentences and equations so that they will stand out on subsequent re-reading. And you should always read everything at least threetimes; firstly, with a light, skimming preview to get the general gist of the material; then, with a detailed ‘in-view’ in which you immerse yourself in the material and attempt to achieve a complete understanding of it; and, finally, with a review, in which you revisit the important points you highlighted in the in-view and incorporate them into a higher-level framework for ease of recall (I find mind-mapping an invaluable tool for constructing this framework). Add your own comments and thoughts in the margins as you go, as these will help to put you back in the same frame of mind on a subsequent reading, and may be important in recording and re-triggering your ‘eureka!’ moments, in which you experienced a sudden insight or discovered a connection with previous knowledge as you read the material. And if your own calculations to confirm some statement or equation are brief enough, include these in the margins too, so that you won’t have to repeat them on a subsequent reading. In short, a well-used mathematics book should look like acomplete mess when you have finished with it, its pages littered with your own underlinings, highlightings, asterisks, question marks, exclamation marks, comments and calculations! But that shouldn’t matter, because if you have read the book in the manner I have suggested, then you will have understood it andmemorized it, and shouldn’t need to read it again :o)*

*Also, if you are aiming – in the language analogy – for conversational fluency, then it is very important that you not only read the text but also do the exercises, because to achieve proficiency in mathematics, as in any other subject, there really is no substitute for practice, practice, practice!*

*Finally, in learning mathematics, you should follow the pedagogical principle of ‘Learn it, play with it, own it!’: When you have learned a new piece of mathematics, take some time out from your reading to thoroughly familiarize yourself with it byplaying with it! Viewed in one way, mathematics is an absorbing intellectual game, and playing with it is not only great fun but also the best way to really learn it and understand it. By ‘playing’ with it, I mean thinking up problems or posing yourself questions that you suspect might be answerable using the mathematics you have just learned, and then applying that mathematics to try to solve them. Or perhaps you might try to generalize the mathematics you have just learned and apply it to a broader range of problems, or connect it with other mathematics with which you are already familiar. All of these activities will help to embed the new mathematics more deeply in your mind, so that you no longer have to refer to your notepad or textbook in order to recall it and use it, but can summon it up effortlessly; playing with mathematics will make it instinctive and second-nature to you, so that you can call on it at any time and, like an old and loyal friend, it will always be there for you. :o) When you have achieved this level of proficiency in a mathematical subject, then you can truly claim that you have attained the third stage of competence – i.e. that you own it (or, in the terminology of NLP, that you have achieved unconscious competence in it). And that should be ‘good enough’ for you, and for anyone else for that matter!*

*Good luck with your journey of mathematical discovery, and have fun along the way! :o)*

*[1] My own disposition is the latter, partly because I find variety and novelty stimulating, and partly because my other interest, theoretical physics, requires familiarity with a broad range of mathematical disciplines. All theoretical physicists are mathematical generalists to this extent (and this is one of the reasons I was drawn to theoretical physics in the first place); we are probably familiar with more areas of mathematics than most professional mathematicians, although our knowledge of any particular area generally won’t be as deep as that of mathematicians who are experts in it.*

*[2] This is something I know a great deal about, as this is how I learned most of the mathematics I know; book-based study has always been my preferred way of learning the subject, even when I was at university. I generally regarded lectures as an inferior form of instruction to self-study, partly because of the inherent limitations of the ‘chalk-and-talk’ format (especially in a large lecture theatre), partly because of the poor quality of some of the lecturers (e.g. the mumblers you just couldn’t hear, the droners who sent you to sleep, and – perhaps worst – the reluctant and disinterested lecturers who you knew regarded lecturing as a tiresome duty that distracted them from their more interesting research work), and partly because their material was frequently so damned boring and irrelevant to my real interests (particularly in theoretical physics). My philosophy was that if I could find a good book on a subject, written by an acknowledged expert in it, then I shouldn’t need to attend any lectures in it, and attendance should therefore be optional (my lecturers took a different view, of course…).*

Ok so there is method to this madness.

The intro to systematic design part one uses a programming language called Racket, or a variation of Racket called Beginning Student Language (BSL).

Now it is a little crazy to learn two different languages at the same time but I have to complete the Part One of the course to get to the Part 2 of the course that has a Python stream.

So here is some additional information about Racket for those that are interested.

The main site for the language is at http://racket-lang.org/

Where you can download DrRacket the shell and visualizer, as well as a nice introduction.

I can already see some language differences when writing simple expressions, for example

Python: 3 + 4

Racket (BSL): (+ 3 4 )

So it will be interesting to see the differences as time goes on and see if I can keep them straight in my head.

Also noticed this blog post about Racket:

Related articles

- The Realm of Racket is an enjoyable read (debasishg.blogspot.com)