Coding Challenge (round 2) and Restoration Trust project

Show and tellOn Thursday August 3rd we ran a second Coding Challenge event.  Again, two students turned up on the evening, although the number of sign ups this time was larger.  We will continue to run these events monthly and will work hard to build the attendance.  We were very pleased to have the help of Jonathan Groves, Ben Scarboro and Danny Burnett, all Kent developers, for their help with mentoring.

The format changed slightly this month. We are now allocating half the spaces to local people in the industry, so that we can get some networking opportunities, and half to the local student/youth population.   Those from industry can mentor or can work on challenges with others.  The format is as follows:

6.30-6.45pm Networking

6.45-7pm Tech talk

7-7.15pm Networking, pizza and drinks (non-alcoholic of course)

7.15-8.45pm Coding Challenge (this month it was a data challenge involving stack manipulation)

8.45-9pm Show and tell (what were the challenges, what did we achieve – see picture at the top)

Maggy Burns speakerOur speaker for August was Maggy Burns who gave a very accomplished talk (her first) on how she got into a career as a front-end developer, including college and apprenticeship experiences.  Her talk was interesting and very well delivered and we are very grateful to her for giving it. She ended her talk with an explanation of BEM, a method for structuring CSS.  This was really well explained and very interesting.  As our student attendance grows we will most definitely be asking Maggy to speak again.

In the meantime, we will be actively looking for tech speakers for future events (September 14th, November 9th and December 7th).  In October we have a special event, a Code Jam, where teams of young people will work on the code for the solution to a problem set by a charity.  This is an all-day event, taking place on Saturday October 21st, around the time of the half-term holiday.

We are again thankful to the schools in Medway, Medway Youth Trust, Medway libraries and the Princes Trust for helping us to publicise the event.

Groves Systems Ltd logoWe are also very grateful to Groves Systems Ltd who again provided the pizza.

 

Restoration Trust projects

We are approaching the end of our project to deliver a digital annual report for the mental health charity Restoration Trust.  This has been an exciting and rewarding journey and a great opportunity for our two work experience students to really develop their skills. They have successfully produced javascript classes and functions, Angular Directives and controllers, Json data structures and Jasmine tests, all have which have contributed fully to the project.  We are really excited about the upcoming launch of the report, which will be reported on this blog.

Our next project, again with the Restoration Trust, will be to produce an interactive 2D and 3D experience with an opportunity to create some artwork for an online gallery.  This will mirror the work that the Restoration Trust do in real life and, again, offer the opportunity for our students and volunteers to really develop their skills.

Coding Challenge (round 2) and Restoration Trust project

First Coding Challenge evening

A late decision was made to host a Coding Challenge evening on July 6th. The rationale was to offer an event specifically for 16-19 year olds, a group that is generally short of opportunities for informal networking and code learning events. We wanted to test the water in terms of how much interest there is in programming and problem solving in the local community.

Coding ChallengeWe have two students currently on work experience with us at the Innovation Centre, Anthony and Jamie, and they would be able to attend and to practice their problem solving skills. We used a standard format for networking meetups, pizza and drinks (although non-alcoholic in our case), a speaker, some networking opportunities and an activity.

We were fortunate to have our final Google Serve volunteer, Idries, working with us that day and he kindly agreed to talk about his long career in the games industry, including with EA games, and his role as Engineering Manager in the Google Play division.

We had only a very small number of students and a good number of volunteer mentors (who helped and also had a go at their own challenges). We are thankful to the schools in Medway, Mid Kent College, Medway Youth Trust, Medway libraries and the Princes Trust for helping us to publicise the event at very short notice.

Groves Systems Ltd logoWe are also very grateful to Groves Systems Ltd who provided the drinks and the pizza.

We got off to a small start with enough good feedback and goodwill to run the event again, which we will do on the first Thursday of each month, starting 3rd August.  The event will be targeted at 16-19 year olds but will be open to anyone from the industry who wants to have a go at a challenge, to mentor, to speak or just to network.

 

First Coding Challenge evening

futureCoders and GoogleServe

We have been really fortunate over the last few weeks to be part of the GoogleServe volunteer month.  We have been allocated one or two volunteers each week and they have been helping us with various aspects of our current project.

This is an exciting time for us.  Alongside the development of a digital annual report for The Restoration Trust, a mental health charity based in Norfolk, our student and volunteer team are developing an interactive app.  Our volunteer Maggy, is taking this opportunity to get some valuable experience in leading a development project.  Maggy is a front-end developer and we hope that the project will help her not only to develop some team-leading skills but also to extend her development experience.


On week one of the  GoogleServe project creative specialist, Antoine and solution specialist, Ian, met up with us at the Institute of Engineering and Technology where we brainstormed ideas for the game and created some mock ups.  This was a really productive session allowing Maggy to start to develop her plan.

 

 


In week two Laura, a software engineer joined us by Hangout to take us through the process of unit testing using Jasmine.  Her explanations were spot on for the level that we are all working at.  We hadn’t used this framework before but it is our aim to use test driven development as a rule.  Laura had a fully planned session that was exceptionally helpful and well timed.

 


Week three and Adam, engineering director, very kindly arranged for us to meet him at Google’s Kings Cross offices.  Anthony, our longest serving student member so far, spent some time working with Adam on some web VR 3D code he is developing using the a-frame.io framework.  This was a great experience for Anthony and a good opportunity to talk through  some of the  code he has been working on.  Laura also joined us and I am so grateful to her for her continued input on testing.  On this occasion we worked through some end-to-end testing of Angular code, using Protractor.  These sessions have been really helpful for me in terms of increasing my confidence in supporting students to learn to work this way.  Adam’s support with Anthony’s work was invaluable and the whole experience was a really memorable one for him.


Week four brought us Idries, an engineering manager who gave Karen and I great insight into project management without the pain. This has really helped us to think about and understand the reasons we should use a particular technique and to make it work for us, rather than working for it. We should keep it simple. Idries also gave us more confidence to use Git.

In the evening we had a coding challenge event, Idries stayed to give an interesting talk on his career path in software development and mentor the coders. A brilliant evening!


The GoogleServe project has been so helpful for us and we are very grateful to Business in the Community for organising it and including us.

futureCoders and GoogleServe

We’ve moved to Medway!

After three months in Bermondsey, which have been great, but expensive, we made the decision to move to Medway.  Following Hilliam and Chike’s decisions to take time out to focus on their exams, with no guarantee that they will return afterwards, we decided to focus our work on students in Medway where we knew there was demand.  We are very grateful to Andrew and Harry at 3Space in Bermondsey for their help.

The wonderful people at Innovation Centre Medway, especially Farley,  have welcomed us and have made us very comfortable in shared office space at the main centre.  We are very much looking forward to working there for the forseeable future and to a great working relationship with the Medway and Kent tech communities.

Workshop

“The workshop day was definitely beneficial and insightful”

In response to a number of queries from students who think they would like to get the kind of work experience that we are offering but haven’t really yet done much programming, we are running some events.  On Thursday 1st June, at very short notice, we ran a HTML/CSS workshop.  Six young people signed up and three turned up.  The workshop focused on learning techniques to help with online learning and we used the tutorials on w3schools.com.  The workshop gave guidance on using the Try this functions to play with code in order to understand what it does and set some challenges to have a go at once the skills had been practiced.  The feedback was good (green indicates feeling a bit more confident than at the start of the day).

Following the workshop we have a new recruit who started this Saturday and is already making great progress.

We will run more workshops later in the year, the next one will be on Javascript.

New projects

Having completed our first project ready for handover we are just about to start three exciting new projects.  We are building a digital annual report for The Restoration Trust, a mental health charity based in Norfolk.  This is a new approach to annual reporting for the charity and we think it will be beneficial for them and for futureCoders as a great project for students to work on.  Alongside the annual report we are developing a simple game based on the work of the charity.   The game is a side project and will the project will be led by our wonderful volunteer, Maggy.  This will give Maggy the chance to build her skills as a team lead.  We have a set of volunteers from Google working with us and will start work this week.  We are keen to integrate a little bit of Virtual Reality into the game where it is appropriate.  After a talk on VR at Twitter, Anthony has been developing some code using https://aframe.io/.  Some of his work will feed into the game and will be submitted to a VR hackathon organised by Samsung.

Coding challenges

Another new activity will be coding challenge events.  A coding challenge provides a great learning experience allowing people to work together solving problems.
Our first event will be on Thursday 6th July from 6.30 to 9pm.  We’ll invite people between 16 and 19 to join us in working on coding problems provided by the  HackerRank website.
We’ll be advertising this widely soon, but in the meantime, if you are or know a young adult who would love to do this then direct them to our website, Twitter feed or Facebook page  where they will find a link to our event on Eventbrite.

June will be a busy month!

We’ve moved to Medway!

Newsletter 2 and catch up

It has been such a busy time and newsletter 2 is now ready!  We have been very busy at our Bermondsey office working on our first project.  We now have a working Spring Boot application that can handle all our content storage and requests.  Thank you to Mark for all his hard work to make this happen. The code is highly reusable and we will be producing a version to share openly and will be using the system in a customised way for our own systems and for future projects.

It has been wonderful to see the three students working with us develop their skills and their confidence.  Each has been able to contribute to our project in some way, by writing classes and unit tests for the content system, by learning some Angular and developing some front end functionality and/or by learning new systems and producing guides and demonstration code for our  knowledge base and their own GitHub portfolios.

We had an interesting visit to Twitter’s Air Street offices to listen to some talks on VR and AR, reported in the newsletter and will be looking for more events like this in the coming months.

We have said goodbye for now to two students, Hilliam and Chike who are focusing on their exams at the moment.  We hope to see them again when the exams are over.  Two new, female students will be joining us to take their place.

Karen and Emily are working hard to look for sources of funding to help us out while we build a portfolio on which to build our reputation and, through this, gain more work.  We have two current clients who are supporting us, as a huge part of the ‘fee’ in what we do by being very involved in their projects and providing a high level of input.  If you are reading this and know of any person or organisation that can help in any way while we support students and build our processes.

Please have a read of our newsletter.

 

Newsletter 2 and catch up

Restoration Trust Game

futureCodersfutureCoders have partnered with The Restoration Trust, who offer support to people suffering with mental health issues through participation in arts projects, on a voluntary project to develop a game.

The game will simulate the type of activity that might be experienced on a Restoration Trust project and will allow users to experience art objects and to share their experience of those objects with others through words and art.

Restoration Trust banner

We have  assembled a team of students and a wonderful volunteer lead developer to work on this project and will support the project through help from our developer and operational support.

We are really excited to be working on this project and to have the opportunity to support one that is student- and volunteer-led.

We are looking for support with this from hosting space, equipment for our students, technical mentoring and help with funding this exciting project.

Restoration Trust Game

Newsletter and news

Working DayLast weekend we published our first newsletter which we sent out by email to anyone we have had contact with since we started. A few days later FENews published an article by Karen which discussed the requirement for work experience as part of the T-Level programmes.  These are being developed as future technical, vocational programmes and being promoted as a real alternative to A-Levels. Attractive features of these programmes include 50% more learning hours than current programmes and a requirement for extended work experience, up to 3 months. futureCoders is already offering a work experience programme, which we are trialling and refining now. We will be preparing our programmes ready for student cohorts looking for an extended experience. Both newsletter and article are linked below:

Newletter

FENews Article

Newsletter and news

First client review

We are up and running

We finished our second sprint on Saturday and had our first client review.  We were able to demonstrate the functionality we had promised, thanks to Emily’s expert project management and our client was happy.  Sprint 3 is planned, tasks allocated and there is a lot of work to do.

Our second retrospective told us that our students are enjoying learning and are hungry for more tasks to keep them challenged.  We learned from this that we hadn’t been giving them enough to do and that they feel that they have the capacity to do more.  This has informed our planning for sprint 3 and each has a set of small, discrete, research and development tasks to keep them busy for the next 3 weeks.

We are being Agile and we are managing to put some of the principles of software craftsmanship in place.  All students are able to write Java classes, to write the tests for those classes and to rationalise what they are doing.  Anthony designed us a template for our class code which puts comments and layout at the forefront and episodes of pair programming have been happening.   We are reviewing all code that contributes to the project and as much practice code as possible.  I have been amazed at the progress made and the willingness to take on new challenges.

After a period of intensive Java learning.  Everyone is now switching to Javascript and Angular.  The focus is now on the front end and on getting all promised functionality working with the backend that has already been built and is being refined and improved.

Our first newsletter is ready to go out and we are adding a donate button to the website.  We will need funding to help us get through the first years while we build a client base and a reputation.  We know that what we are doing is worthwhile and needed and we hope that others will feel strongly enough to help us financially.

First client review

Learning about IntelliJ

By Hilliam – Junior Developer at futureCoders

The IntelliJ (Intelligent Java) IDE boasts a numerous amount of features that aid the development of Java code, both writing and executing. Like a normal IDE, it provides the general necessary features for writing code. This includes the auto-indentation of code, syntax highlighting and auto-completing variable or method names, all as to reduce the wastage of time.

As a specialised Java IDE, one can create various file types for classes and methods using different modules and packages. Upon starting a new project, different libraries can be imported upon request if needed, and templates can be used when starting the first class of a given project. The basis for a class starts off with a .java file under a name that is the class name within that .java file. For example, the class runJson inhabits the runJson.java file. This file is held within a package or folder of files, often named a JAR if the folder has been compressed. A general base package within the IntelliJ IDE is the com.company package, a package having the purpose of organising Java classes within itself so that those classes can interact with each other. A main.java file within a project is the foundation for the entire project, with the class within the file being called main. Different methods from other files within the project, given public access by its class, can be used within any file, however, it is a standard to often call the primary methods using the main.java file as to run the whole program.

After the creation of a new project, a project tree is often given, giving ease to switching between classes within the same package. Within the classes, methods can be created under that class, for the purpose of executing a procedure or taking in a parameter given in between the parentheses when calling the method and returning a value. Methods essentially drive the program by executing specific code as to manipulate data and provide an appropriate output upon its usage.

To execute classes, the green play button, upon the top right corner of the platform, can be clicked on as to execute the entire class that is stated to its left. This may be the Main(.java) class, or another class created within the same project. If a ‘Main’ class is not defined within any of the files within the project folder, a primary main class must be defined by editing the configurations, by using the simplified pathname ‘com.company.<class name>’. This can be done, or the primary class that runs the necessary procedures to execute the entire project can be refactored (menu bar) through renaming that file and class to Main.java. Upon execution, all processes within the class through the calling of methods will occur. To execute individual methods, the same green play button will be visible within the code editor but diminished; once clicked, it will run that method, starting from the line the play button was present upon.

It is important to also make use of the debugging feature given, denoted as the green insect next to the green play button. This creates an instance upon a virtual machine that will run your Java class(es) and check for errors or bugs in the code. This is only for the checking of syntax errors, those that break the formal structure of Java code and thus will break the Java program. Before code can be executed or debugged, it must be compiled or built, which can be done through the IntelliJ IDE, as to turn the human language Java code into object code, a translated form of the code that the computer system can understand. This object code will then be sent to the computer system to execute and the result is outputted upon the IntelliJ IDE in a run window. These processes of building and running the code can be seen upon the bottom bar of the IDE, along with the time it takes to complete the processes upon completion.

The IntelliJ IDE also allows for the usage of test frameworks such as JUnit. Such a framework like JUnit can be used as to test for logical errors within the code and check whether outputs from given inputs are correct to your understanding. To add a test to a given class, click on the class within the code editor and after a few seconds, a lightbulb should appear. Clicking on it will give the options as to create a test. Clicking this will create a test file, with a class to test the code. If JUnit is not configured yet, pressing Alt + Enter upon the red @Test annotation will allow you to add the JUnit jar to the classpath. This will import the JUnit test module. If need be, the JUnit testing configuration may need to be set up if it is not present upon the left of the green play button. To do this, the run configurations must be accessed, next to the green play button. From here, a new JUnit configuration must be added with the green plus button. The usage of the pathname ‘com.company.<testfile>’ should be necessary as the class being run by the JUnit configuration. It can then be run when given the necessary checks to run within the test file using Hamcrest matchers by importing the module using the words ‘import static org.hamcrest.CoreMatchers.*’. Configurations can be changed between testing and normally running the program by the configuration dropdown menu, making it easy to test and execute code.

Aside from being able to change the settings of the file, the top menu bar also gives options for the editing, analysing and scanning of code.

The view and the window menu will give a series of visuals for the structure of the code but also the shape of the IDE. Additional tool windows can be added via this menu or by clicking upon the bottom left image of a screen. The navigate menu is useful for scaling to a needed section, if scrolling through the code for a class is a journey. Code can be reformatted and move around using the commands within the code menu and the analyse menu gives features to provide facts and statistics about the code. The VCS menu is useful for looking at the changes between saves of the class. By viewing the local history, the current version of the java class can be reverted back to that previous version of the class.

With that being said, that should be a rough baseline guide of the IntelliJ IDE playground as to start programming in Java. Thank you for reading!

Learning about IntelliJ

Why are we asking people to fund us?

First project handover
Our first project handover

At the mid-point of our Kickstarter campaign I am reflecting on why it has, sadly, not attracted the interest we had hoped by this stage. Many people have shared our posts and requests on social media and more and more people are becoming aware of us and what we do.

I will continue to campaign and will be stepping up the effort as much as I can, bearing in mind that I have a demanding job three days a week, we have started our second pilot and so are currently working with students. I am learning that a campaign needs full-time effort and this reflection might be what we take away from our Kickstarter campaign, but I can’t give up yet.

Most importantly, I want to spend some time now reflecting on why we are asking friends, members of our family, the wider public and companies to make a pledge to help us to fund our second pilot. Our first pilot was successful and ran on no budget at all but if we are going to achieve our aims we can’t continue to work in that way. We have to get started somehow and, unfortunately, a budget is needed so that we can guarantee to finish what we start. Emily and I continue to do this for the love of it but we need to pay a developer to take on the responsibility of delivering projects for clients. Without this there is no work experience. We need to build a client base and can’t take on work at this stage that brings in enough to cover costs. We will be able to just about do this one day but our model is a break-even, rather than profit-making model. It has to be this way. Our aims are to develop young people’s skills and experience, to open up new progression routes for school leavers and to produce affordable software for charities. None of these activities is high-yield.
We can’t offer a return on investment.

What we can offer is a warm glow of contentment at having helped both young people and social causes and a membership of our community. Membership allows you to keep informed of our progress, the progress of the students we work with and our showcase of upcoming projects. As a member you can choose for your donation to be attached to a project and, depending on the donation, will be credited in the information that is embedded in the software.
If you work in software you will know how difficult it is to find talent. You will especially know how difficult it is to find young talent. Your donation can help increase the pool of young talent and this is beneficial to everyone.

If you have read this far and are starting to think about it, I am so, so grateful to you for your time. We have had over 756 shares so far, if everyone who shared were to donate £10 we would be over 75% funded by now. If you don’t feel you can pledge now, that is totally understandable but do you know someone in the industry who could persuade an employer to pledge? Can you share this post to help it reach at least 756 people?

I really believe that futureCoders will make a significant difference, not only to the lives of the students we work with but to the companies who eventually employ them and to the charities and other organisations we produce software for. The Internet of Things has the potential to revolutionise every part of our lives and every part of it will need some sort of software, just think how much difference these students can make while they are with us and beyond!

Why are we asking people to fund us?