Gaining Programming Experience
28 May 2013, by Anna Mulholland
When recruiting for technical roles at Softwire, how much experience an applicant has isn’t the be all and end all for us when considering applications. If you’re interested in applying to work for us, why not find out exactly what we’re looking for?
However, it never hurts to gain some programming experience, or work to improve any experience you may already have. The best candidates (and often the people who do best after they start at Softwire) are generally the people with a passion for experimenting and trying out new things.
In terms of what you can do to gain some more experience of programming, the short answer is just practice.
It’s pretty much the case that you can choose any programming language, framework, type of project etc. and gain some real benefit from it. So we’d definitely recommend trying to find something that you think would be fun and engaging!
Things to do
- Try and think of an app that would be useful to you, and go build it! Within Softwire people have built apps to do stuff like: inviting people to play pool, table football or other games and keeping queues, tracking what you’re working on to make it easier to fill out timesheets, manage signing up for lunch and tracking how many people are having each meal and how much they owe, sending short praise messages to team-mates, managing a fantasy football league; and one of the training exercises we often do for new starters is based around writing a table tennis ladder. It doesn’t need to be a novel idea if it’s interesting or fun to implement. Quite a few people have also written small games in their spare time.
- There are also sources of project ideas online – e.g. mathematical problems (projecteuler.net) or some “code kata”s (codekata.pragprog.com)
- Alternatively, look out for online tutorials and follow some of these – they’re a bit variable in quality and many of them are frankly a bit basic, although there are some rather more demanding ones offered by various universities at www.coursera.org
- Another great route once you’ve got established is to look for an open source project to contribute to – there are always bugs to fix. Again, look for something which interests you, or perhaps something you’ve used yourself and have some familiarity with.
Choosing a language
- We do mostly C# and Java. We probably wouldn’t recommend starting out with Java although there’s lots of free resources if you do. For C# Students can get free versions of Microsoft’s developments tools through DreamSpark (www.dreamspark.com), whilst anyone can download cut down “Express” versions of Visual Studio from www.microsoft.com/visualstudio/eng/products/visual-studio-express-products.
- But equally there are lots of interesting open source languages which are well worth trying – Ruby (on Rails) and Python are particularly great choices if you want something fairly mainstream. If you want to stretch yourself and do something a little different then you could try a functional language (Clojure, Scala, Haskell or F# are all quite fashionable right now) – we don’t often use these (to date) at Softwire, but it’s all valuable experience in terms of getting good at coding. There are free development environments (IDEs) for all of these
Things to think about
- As well as learning how to write code, it’s great if you can consider how to write clean, maintainable code – a search for “Clean Code” will show all sorts of resources (and the book of the same name is a fairly definitive work).
- One of the key concerns of clean code is testable code – there’s a technique called test-driven-development (TDD) which is a habit well-worth getting into, although it requires some discipline
Other useful tools
- Create an account on github.com and learn how to use git to manage your code in version control – again great practice for the future, and good to have your code out there for people to see
Don’t be intimidated by the long list above though – just pick something which interests you and have a play around!