Sunday, 6 March 2016

The Perl flip-flop operator

Have you ever wondered where fashion and software development overlap? If so, look no further than the flip-flop. It's a feature available in Sed, Awk, Ruby and Perl which - akin to its namesake - is short, revealing and can raise a few eyebrows.
Robot Gear flip-flops by Cafepress

Sunday, 31 January 2016

How To Grow a Development Team

For the manager of a technology shop, "Hotel California" has the ideal spin on staffing. As the Eagles so bluntly put it "You can check-out any time you like/But you can never leave!". In modern business speak - Hotel California has zero "churn", where churn is the portion of recruits each year who are hired to replace employees who've left.



No Churn


Wednesday, 20 January 2016

Quick and Dirty: Vim highlighting and tag matching for HTML and Perl's Template Toolkit

If you're a Vim connoisseur you're probably using vim-perl for getting all the Perl goodies you can cram into Vim. On the other hand if, like me, you're building and trashing virtual machines left, right and centre to develop different widgets you don't have the patience to achieve a perfect Vim environment on each box. This is the quick and dirty solution which gets you 80% of the solution in a matter of seconds.

Tuesday, 10 November 2015

Interview: Alexis Sukrieh - Inventor of the Perl Dancer web framework

In this article I track down the elusive creator of Perl’s Dancer web framework, Alexis Sukrieh. He reveals how Dancer came out of his work as a Ruby CTO and gives an insight into the driving force behind Dancer’s community.


Saturday, 17 October 2015

Interview: George Karpodinis - Perl search engine engineer at Adzuna

Over the coming months Geekuni will be interviewing talented Perl developers who are working on interesting projects at exciting companies. We kick off the series here with George Karpodinis, lead developer at Adzuna, to learn how Perl fits into the high-tech start-up world.

Wednesday, 30 September 2015

Language popularity survey

In a survey that was performed earlier this year we asked users to complete two statements: "I spend most time writing..." and "I would like to write more...".

About The Survey

Note that we didn't limit people's choices to just languages, we included some popular frameworks (e.g. Bootstrap), libraries (jQuery) and runtime environments (Node.js). We also included different versions of the same language where the user base may be significantly different for each version (e.g. Perl 6, Python 3).

Just under 600 people completed the survey - a good sample size. It is worth noting that the sample is not a broad representation of all developers; at Geekuni we focus on all things Perl and the sample reflects this with Perl 5 being by far the most popular language for 'I spend most time writing... '. Also, a high proportion of respondents spent time writing three or more languages which shows a high level programming experience. The age range of those in the sample was wide, with participants ranging from under 18 to 64 years old - the most common age ranges were 25-34, 35-44 and 44-54.

If you would like to view the raw data from the survey you can see it here.

See results and a brief analysis below:

Brief Analysis

The most popular languages in use among the participants are Perl 5, JavaScript and Python. jQuery, PHP, Java, C and C++ are also widely used.

The same languages also proved popular as an answer to 'I would like to write more... ', with the notable exception of PHP - it seems that although PHP is widely used it isn't a language that many people want to write more with.

There were also a few languages that have a small user base among repsondents at present but are high on the list of languages that developers desire to work with: Perl 6, Go, Haskell, Node.js, Ruby and Python 3.

Language Growth Rate

We predicted the annual increase in usage of each language among survey participants by using the following equation:

R = (D*q + S*p - p)/p


where:

R = annual growth rate

p = number of present users

q = number of people who say they want to use it

D = the determination people have to embark on learning a langauage within 1 year (this was set to 0.1)

S = the stickiness of a language already being used (this was set to 0.95)


Here are the results:



The languages with highest predicted growth rates among the survey are: F#, D, Perl 6 and Haskell.

There are also languages with negative growth rates that we expect to have reduced usage over time: Visual Basic .NET, PHP, Fortran and ABAP.

Predicted Language Use

Many of the languages with high predicted growth rates have small a user base at present - so will this translate to lots of users in the future? We made use of the compound interest formula to predict the number of users in 5 years.

Here are the results:


Thanks to everyone who completed the survey - we'll be running this survey annually and we'd really appreciate your opinion so that we can make the survey sample a representation of all developers. If you'd like to take part next year please sign up for the Geekuni newsletter.

Wednesday, 26 August 2015

Using Socratic Inquiry for Learning to Code

In a previous post we discussed how experiential learning can be used to teach programming. In this post we’ll cover another effective method for teaching and learning coding: Socratic Inquiry.

What is Socratic Inquiry?

Socratic Inquiry, also referred to as Socratic Method, Socratic Questioning and Socratic Debate, is a method of asking leading questions which are chosen to test logic and to stimulate critical thinking. Ultimately, the aim is to increase understanding and illuminate ideas through asking carefully designed questions. 

Where did it come from?

As you would expect from the name, the idea was developed by Socrates in 5th century (BC) Greece. At the time Sophist philosophy was popular and Sophists used dialogue to persuade their audience that their opinions were correct. Socrates turned their method of rhetoric on its head by using questions to expose flaws in their assumptions and arguments – he famously limited himself to only asking questions. In doing so, he forced people to critically examine their own ideas and in effect become their own teachers.

Modern Uses of Socratic Questioning

Socratic Method is used widely in modern day education – when leading questions are used to highlight flaws in arguments, test logic, challenge accepted facts or refute hypotheses it is an example of Socratic Method in action.
Of particular note is Law Education where Socratic Inquiry is used extensively. Teachers can ask a student to form an opinion about a case and question them about it, forcing the student to defend their viewpoint or change their opinion as a result of their own answers to these questions. By going through this process students gain an understanding of the logic behind legal principles.
This leads us to an important difference between classic and modern use of Socratic Method. Most modern uses of Socratic Inquiry are designed to guide a student to understanding through a series of little steps. The knowledge obtained by the student is foreseen by the teacher and their questions are chosen to guide the student to achieve some specific knowledge or understanding.
In comparison, most classic uses of the Socratic Method were open ended, without specific goals or outcomes in mind. Socratic Inquiry was used to try to come to new understanding, as opposed to leading the person being questioned to a pre-defined outcome.

Socratic Inquiry for Learning To Code

Socratic Method is well suited to learning to program because code is based on pure logic and Socratic Inquiry is an excellent way to test logic.
At Geekuni, the Socratic Questions come in the form of tasks which lead students to examine why they use code in a certain way and to critically examine their use of code. Doing so creates a thorough understanding which is far beyond that gained from watching a video tutorial or listening to a lecture.