You are currently browsing the monthly archive for February 2012.
The Graduate Developer Community’s next free event is – ‘March’s Code Share: First Expressions’ on Wednesday 7th March at 6:30pm.
Please see link for details and to sign up – http://www.meetup.com/grad-dc/events/53621322/
March’s Code Share: First Expressions.
Code doesn’t just tell a computer to what to do. Code allows us to express ourselves, organising our thoughts and sharing them with others: both humans and machines. Code provides us with three mechanisms to do this: expressions, combination and abstraction.
This month we are going to look at the first of these: expressions.
Expressions represent the stuff that we are manipulating: procedures and data. Different languages provide different expressions. It is believed that the language we use affects the way in which we think. Wilhelm von Humboldt asserted in 1820 that “the diversity of languages is not a diversity of signs and sounds but a diversity of views of the world.” Is this true for software? Does the use of s-expressions in Lisp and Clojure cause the programmer to see the world differently to the Java developer?
Donald Knuth proposed literate programming, with code being read for other humans to read and understand as well as for a computer to execute.
The practitioner of literate programming can be regarded as an essayist, whose main concern is with exposition and excellence of style. … He or she strives for a program that is comprehensible because its concepts have been introduced in an order that is best for human understanding, using a mixture of formal and informal methods that reinforce each other.
In recent years this literate approach has made great advancements in the area of testing. Consider, for example, Behaviour Driven Development and the use of simple sentence templates that allow programmers and domain experts to share the same language. Dan North writes:
Developers discovered it could do at least some of their documentation for them, so they started to write test methods that were real sentences. What’s more, they found that when they wrote the method name in the language of the business domain,the generated documents made sense to business users, analysts, and testers.
All languages are designed to help the developer express themselves more clearly (well, nearly all: http://en.wikipedia.org/wiki/Brainfuck). Their designers, however, have taken many different approaches. Paul Graham argues that extensibility is the key to clarity. The programmer is given the ultimate freedom of building a new language for every new problem.
As you’re writing a program you may think “I wish Lisp had such-and-such an operator.” So you go and write it. Afterward you realize that using the new operator would simplify the design of another part of the program, and so on. Language and program evolve together… In the end your program will look as if the language had been designed for it. And when language and program fit one another well, you end up with code which is clear, small, and efficient.
On the other hand the creator of Python, Guido van Rossum, believes that the key to readability is to limit the developer’s choices so that they are forced to adopt a familiar style.
Readability is often enhanced by reducing unnecessary variability. When possible, there’s a single, obvious way to code a particular construct. This reduces the number of choices facing the programmer who is writing the code, and increases the chance that will appear familiar to a second programmer reading it. Yet another contribution to Python’s readability is the choice to use punctuation mostly in a conservative, conventional manner.
The Diabolic Developer doesn’t care how code can be made clear because he doesn’t want anybody else to be able to read it.
- Keep information to yourself.
- Knowledge is power.
- Think job security. Never provide documentation.
- Make sure only you can read your code.
- Don’t put comments in your code. Name your variables A,B,C….A1,B1, etc.
- If someone insists you format your in a standard way, change a small section and revert it back as soon as they walk away from your screen.
- Knowledge is power.
- The Diabolical Developer: How to Become Awesome
How do you feel about literate programming? Have you discovered a language that allows you to express yourself with ease and clarity? Have you written code that makes a difficult problem comprehensible? Do you have some ugly code that you just can’t clean up? Is there something that others insist on doing in the name of readability that you find incomprehensible?
We would like to hear your thoughts. Better still, we would love to see your code. Please come along and share.
Please see link for details and to sign up – http://www.meetup.com/grad-dc/events/53621322/
We have had such an overwhelming response to the programme that I wanted to write a quick update as to what’s going on with GDC Meet a Mentor.
In the four days since we launched the program we have attracted over 40 representatives from a diverse range of companies including Morgan Stanley, IBM, UBS, Ernst & Young and some of the most exciting startups in London. We have a variety of positions too including CTOs, Software Developers, Testers, Analysts, Scrum Masters, Technical User Group Leaders, Open Source Software leaders and Software Evangelists.
Thanks largely to the members of the London Java Community and the London Software Craftsman Community, but also the other communities and companies that have supported us and those that have kept tweeting our cause.
The real beauty of this program is that the people involved are not in marketing or HR. They are not going to give a sales pitch about their companies 3 core values, but they that want to tell their story and offer honest, genuine opinions on career guidance.
We are in discussions with several London based institutions about this already and are hoping to get some events confirmed by the end of the week.
The Graduate Developer Community was set up with the intention being able to inspire, guide and act as mentors for undergraduates with an interest in Software Development. The group has been running for the last 2 years and we have now got connections with many universities, technical societies and companies in London.
One of our main principals is in helping students to understand their options beyond University. We have found that there are many myths in this area and that many undergraduates are not always clear on their options once they leave university. We are involved in a number of initiatives to help students find their way through the industry including the GDC Careers website, which hosts interviews with many industry mentors and tells their story through software.
The goal of the program is to run a series of events within different universities. With inspiration from unconferences, the events will have a vibrant ‘speed dating’ style in which mentors will spend 10-15 minutes speaking to a set group of 5-10 students before moving on to another group. We believe this approach will be far more effective than a standard presentation in helping individuals feel more engaged with the mentors and ask questions relevant to their particular interests.
We are looking to build a network of ‘mentors’ that would be interested in speaking to students about their stories and answering their questions. All we are looking for at this point is someone that may be interested in spending 1-2 hours, once or twice a year (although there will be opportunity to go far beyond this). There is very little expectation of you, but a lot of opportunity.
The program will be promoted by the GDC in association with RecWorks, who will be responsible for co-ordinating and organising the events.
What would constitute a mentor:
– Software developers, Testers, Business Analysts, CTOs, Trainers, Academics, PhDs, Development Managers, IT Managers. Seniority or experience level is not important, but passion is. Anyone with an ounce of passion for their discipline within software should apply
– Open Source Software developers, User Group leaders, Agile enthusiasts, Software Craftsmen, Opinionated technologists… the more opinionated the better
What would you have to do:
– Turn up at a university either inside or outside of core business hours (let us know your preference)
– Speak to a small groups of 5-10 students about your experiences and answer any questions that students may have
What would you get out of it
– An ability to tell the next generation of thought leaders about your story, company, product or open source project
– A chance to make a genuine impact on someone elses career.
– A chance to actually inspire a great many people to do the things you believe in (writing clean code, getting involved in Agile, considering testing as a career, get involved in open source software development etc.)
– A chance to say “in my day…”
How to get involved
– Just send me an email at firstname.lastname@example.org. I’ll add you onto a mailing list through which we will let you know about further opportunities to get involved.
We will take care of every other part of the organisation, you will be presented with a date, time and institution to get involved and all you have to do is let us know if you can make it. There will be no expectation of you, so if you’re just interested in getting involved directly or just to see what is going on then please let me know.
On Wednesday night we had our monthly code share event, this time focusing on Dependency Injection and the way it is used in Java and other languages – http://www.meetup.com/grad-dc/events/48903152/
The code share kicked off at 6:30pm and lasted to 8:00pm – great to see so many turn out. One things for certain, Spring doesn’t have to worry about going out of business anytime soon – nearly every developer that came along used DI and Spring.
It’s always great to hear your thoughts from these events, if you have any feedback or would like to suggest something please post it here:http://www.meetup.com/grad-dc/events/48903152/
Dave Snowdon opened up the event and talked about dependancy injection before handing over to Dave Syers for the code presentations, special thanks to them for making the event so informative.
Thanks also to Vaibhav Gowadia, Sandro Mancuso, Luigi Bitoni and Maris Orbidans for contributing their code examples.
There is always an opportunity to get involved in these events- it’s a great way to share what you have learned and may open up new opportunities. We can offer constructive feedback from experienced speakers so if you’re at all interested let me know.
Queen Mary University was, once again, kind enough to provide the venue, so big thanks to them.
Big thanks also to Thoughtworks for graciously sponsoring another LJC event.
Once again, thanks to everyone that made it out last night. We are one of the most active Java User Groups in Europe and we’re keen to stay that way so if you have any feedback at all please let Barry or Martijn know.
Finally, here at RecWorks we are connecting Java developers to some of London’s top companies. If you’re not happy in your current role then feel free to give Andrew, Kenric or myself a call or email for an informal chat. We are far more interested in building long-term relationships than one off placements, but if you do feel the time is right now we are happy to help.
See you next time.
Last night, we had a great event at Kings College London – http://www.meetup.com/grad-dc/events/43860072/ – where about 40 undergraduates got a chance to revisit their youth and play with Lego, building pet animals to learn some of the principles of Agile. The results were somewhat varied… some of the animals came out looking beautiful, well constructed and polished, some of the others certainly wouldn’t have won any prizes – you all know who you are 😉
It was a great event, there was a fantastic turn out and a lot of buzz in the room throughout and most importantly everyone got to understand some of the core principles of Agile.
As I mentioned when I opened the event, getting involved in events like this is crucial for your development. The general feeling on the market is that graduates do not finish university ‘ready’ to enter the market. Events like last night help to prepare you for some of the principles and technologies that you are going to come across when you hit the real world. Talent development is not just about getting a job it’s about getting 4-5 job offers and being able to select the right job and package for you. Our next event is happening tomorrow night at Queen Mary University and will be far more focused around coding itself. I can not recommend it highly enough. We have 50 senior developers signed up and just 6 graduates at this point, sign up here for a chance to meet some of the brightest minds in the industry and find out about Dependency Injection Frameworks.
We are always looking for new volunteers so if anyone is interested in getting more involved the get in touch directly to discuss how you could help: email@example.com
Here is the event page and the GDC twitter tag: @GDCldn I am really keen to get as much feedback as possible to pass on to everyone involved to ensure we can have similar events in the future.
At RecWorks we are proud to have been able to organise another event for the GDC. RecWorks is a specialist consultancy blending social networks and recruitment services to provide first class service to candidates and clients across London. We are involved in the GDC to try to help connect you with advice, guidance, internships and job opportunities. For a list of our latest jobs please see our jobs page here: http://recworks.co.uk/jobs contact me directly on firstname.lastname@example.org or follow us on twitter @recworks
We were incredibly lucky to have ThoughtWorks with us, one of the premier global technical consultancies to assist with the event. Katie was able to organise for 8 of their consultants to help out at the event. ThoughtWorks are always looking for the most talented graduates, you can follow them here: http://twitter.com/#!/TWEuropeGrads
Finally a massive thank you to Steffen, Emily and Fatos for organising and co-ordinating the use of the venue. It was a great location and room and we hope to organise many more in the future.
See you all at the next one!