3 months in Annadale, 5 students, Limitless Job Opportunities
In response to the limited availability of talented programmers graduating from Irish Universities (and the parallel trend of large multinationals handpicking the top students from relevant disciplines), we at Annadale Technologies decided to address the source of the problem – the tendency of high-achieving pupils opting for high-points courses such as Medicine and Law on their CAO, rather than technology courses such as Engineering and Computer Science.
We felt that this tendency is linked with the fact that most young Irish people are not exposed to the technology which powers the gadgets they use every day, as the standard of IT education in the Irish classroom leaves a lot to be desired. We felt that as part of our mission of growing our Kerry-based software company we should reach out to students and demonstrate to them first hand how exciting and fulfilling a career in software development can be.
In December 2010 we decided to recruit several secondary school students to work with us for the summer, with the view to them opting to study computer science (or some related discipline) in university, and returning to work with us during their holidays and upon graduation.
To kick-start this process, we contacted local maths teachers to see if they could pass on information regarding our proposed summer program to students with a strong aptitude in mathematics. Within a few weeks we had several impressive CV’s from several impressive 16 year olds in our hands. These students had never seen a line of code before, however were interested in seeing what programming is all about.
The summer program
In early June 2011 six students started the Summer Placement. We set them up with a full workstation each, with a range of applications pre-installed such as Linux – Ubuntu, MySQL, IntelliJ, Java 6 and Dr. Racket (formerly known as ‘scheme’), and a set of earphones at each workstation.
The aim of the program was to give the participants a ‘strong grounding in how computers work, how networks and the Internet works, and how to write software using the Java programming language and a variety of other software tools’. In addition, a core aim of carrying out the summer program was to show these students that programming is a fun and rewarding activity.
Concepts, Techniques and Technologies
The students spent the first five weeks learning about key concepts, techniques and technologies that would enable them to design and develop a software application.
They started learning about aspects of the Agile approach, such as pair-programming and the use of stand-up meetings to provide status updates. We then taught them how to Google effectively, so that they got into the habit of finding the answers to their questions online where possible.
Using resources available for free online they learned everything from the basics of how computers function, what html is, how the Internet works and how security is achieved using cryptography and SSL.
A key element of the program was the students’ preference for watching Youtube videos to pick up key concepts (in particular the New Boston Tutorials, which give viewers a full grounding in Java). It is amazing how much valuable content is available for free on Youtube, so don’t be afraid of using it when training up new starts or bringing in teenagers for the summer!
The students then learned Linux fundamentals using Funtoo, and went on to learn about Object Oriented Programming (specifically Java). In parallel with this, the students studied a ‘Theory Track’, which consisted of learning about functional programming using Dr. Racket, and reading up about Lisp languages such as Clojure, as well as studying algorithms and their use in computer science.
Five weeks into the program, we felt the students were ready to start a project. We split the six students into three groups of two, and gave them the task of building an end-to-end mobile payments application. For the next five weeks the students worked largely on their own on the project, with ad hoc support here and there from our senior developers. On August 17th the students presented their completed project – a payment application that can be used on Android phones.
The team was very proud of the work they had done, and they were really happy to have created a system that can be used in a real-world context.
The key thing we learned from hosting the program was that able students can learn an awful lot over several weeks if you structure the information you give them. We are planning to use the structure of this program for training up all new hires – even those with programming experience – in the future, as it has proven an excellent way of ensuring our developers have a strong grounding in all aspects of computers before they delve into more advanced programming.
We also learned that despite the bad press our schools get, many of our students are incredibly capable, with a solid foundation in maths and logical thinking – skills which can be nurtured to great effect in the right environment.
Our students noted that they loved working on their own and not being spoon-fed information – this is something that we should all keep in mind when introducing today’s generation of students to technology.
If anyone would like to learn more about the program, or if you would like to host a similar program in the future please contact me (Liz McCarthy at firstname.lastname@example.org ) and I would love to send on our list of resources, or meet you to chat about our experience.
See this post on Enterprise Ireland's 'Best Connected' blog