Click here to Skip to main content
15,880,543 members
Articles / All Topics
Article

A Coder Interview With Mark Rendle

,
Rate me:
Please Sign up or sign in to vote.
4.94/5 (18 votes)
31 Oct 2012CPOL6 min read 32.2K   5   4
Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Mark Rendle.

Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Mark Rendle.

Who are you?

I’m Mark Rendle, and I live in Hampshire in the south-east of England. These days I’m a freelance consultant, developer and trainer.

What do you do?

Ha, what don’t I do? Right now, I’m working on a Windows 8 launch application for a UK media company, consulting with a company looking to bring a big enterprise system up to date, and doing frequent Windows Azure workshops with lots of companies looking to move their web sites or internal systems into the Cloud.

I’m also working on my start-up project, StorageDeck, which is a web-based management application for Windows Azure Storage Services; that’s in early, invitation-only beta right now, but hopefully will be launching properly very soon.

On top of that, I’m writing a book, Building Windows 8 Apps - Problem, Design, Solution for Wrox.

Oh, and I do Simple.Data, a data access library, and Simple.Web, a light-weight web framework, both for .NET.

Over the last 20+ years, I’ve worked on dozens of things, including (in chronological order): a code-generator for Informix 4GL; a commercial class library for Gupta SQL Windows; a CRM system for non-profit organisations; the GameShaper social game framework; an energy-usage dashboard for British Gas; and the loyalty-card portal for The Body Shop.

There was also an odd couple of years (1999–2001) where I was a professional stand-up comedian, and a comedy writer at the BBC.

What is your development environment?

I’m primarily a C# developer, so I do the majority of my work in Visual Studio 2012 on Windows 8, but the open-source things mean I use MonoDevelop on a Mac as well.

For dynamic stuff (Ruby and Node.js) I use Sublime Text 2, and I also use WebStorm for Node projects.

Whatever I’m working in, though, I always have vi mode enabled: VsVim in Visual Studio; Vintage mode in Sublime Text; IdeaVim in WebStorm. I spent the first four years of my career working in vi on Wyse terminals, so I developed the muscle memory. It’s amazing how much more quickly you can throw text around if you really know what you’re doing.

What new tools, languages or frameworks interest you?

All of them! I suffer from neophilic attention-deficit disorder. I really have a problem resisting the urge to try and learn everything at once, but I try to keep it down to one or two things at a time.

Right now I’m focusing on JavaScript, which is not new, but is definitely having a renaissance. There’s Node.js, of course, and some really exciting things happening in browser app development with frameworks like Knockout and Angular. I also prefer using HTML and JavaScript for the UI code for Windows 8 apps, although I still do the other bits (business logic, data access and so on) in C#.

Languages I’m interested in but not letting myself play with right now include Rust, Clojure, Go, Dart, Nemerle and C++11 (which has got so many new features it’s practically a new language).

What is your coding pet peeve?

Boilerplate. I hate all the extra code you have to write (or generate) to express the fundamental ideas of your application or service, or those cases where you have to repeat fragments of code over and over because there’s no abstraction or syntactic sugar to represent the idea.

The thing uppermost in my mind right now is implementing the INotifyPropertyChanged interface in .NET, but there are good examples in all languages: callbacks and the function keyword in JavaScript; Rails-cruft in Ruby; header files in C++; GROUP BY clauses in SQL; ORMs in any language or framework; XML and all its bastard offspring.

How did you get started programming?

This is going to show my age. For my 10th birthday I got a Sinclair ZX81. It came with a few games you could load from tape, and you could buy a few more in the shops, but it was really designed to be programmed. The keys even had the BASIC keywords on them, so when you pressed “P” at the start of a line, it inserted “PRINT” for you. Kind of like IntelliSense, now I think about it. Anyway, the manual took you through some basic examples, so the first program I wrote was

10 PRINT "WHAT IS YOUR NAME?"

20 INPUT A$

30 PRINT "HELLO ";A$

Everything I’ve done since has really just been iterations on that.

How has the developer community influenced your coding?

So many ways. Pretty much everything useful I’ve learned in the last 10 years has come from blogs, user groups or conferences. I buy a lot of books to learn the actual detail, but you discover the ideas through the community and then go off and buy the book to learn the subject thoroughly.

I went from lurking to participating in the community a little over two years ago, and now I get to speak at conferences and user groups and people actually read my blog and things, and that’s the thing I get the most satisfaction from. That feeling of being a part of something, of a group of people who are passionate and enthusiastic and dedicated, is just really great, and it drives you to stay at the top of your game and keep learning and sharing and doing the best you can at everything.

Also, putting open source code on Github where everybody can read it really encourages you to write better code. :)

What advice would you offer to an up-and-coming programmer?

Build something, end-to-end, the whole thing, from user interface to data storage. It doesn’t matter what language you use, or what it runs on, or any of that stuff. If you can think of something that would “scratch an itch”, or solve a problem that you have, so much the better, but if you can’t, then try copying a simple application that you use a lot.

Whatever language you choose, find your nearest user group and attend as often as you can, read blogs, follow people on Twitter, and look for open source code to download and read.

Read a big, thick, thorough book on whatever language you’ve chosen, plus: The Pragmatic Programmer; Clean Code; Code Complete; Design Patterns; and Zen and the Art of Motorcycle Maintenance.

Finally, and this is advice for all programmers: don’t get too attached to anything, because in programming (as in life) things will keep changing, and you have to roll with the changes and see them as exciting opportunities to learn new things.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer CodeProject Solutions
Canada Canada
The CodeProject team have been writing software, building communities, and hosting CodeProject.com for over 20 years. We are passionate about helping developers share knowledge, learn new skills, and connect. We believe everyone can code, and every contribution, no matter how small, helps.

The CodeProject team is currently focussing on CodeProject.AI Server, a stand-alone, self-hosted server that provides AI inferencing services on any platform for any language. Learn AI by jumping in the deep end with us: codeproject.com/AI.
This is a Organisation

4 members

Written By
Architect Dot Net Solutions
United Kingdom United Kingdom
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralMY VOTE OF 5 Pin
Abhishek Nandy1-Nov-12 4:26
professionalAbhishek Nandy1-Nov-12 4:26 
QuestionThe danger of "Don’t get too attached to anything, because in programming" Pin
Nicolas Dorier1-Nov-12 1:06
professionalNicolas Dorier1-Nov-12 1:06 
GeneralRe: The danger of "Don’t get too attached to anything, because in programming" Pin
WajihaAhmed1-Nov-12 4:09
WajihaAhmed1-Nov-12 4:09 
GeneralMy vote of 5 Pin
Pranit Kothari31-Oct-12 18:37
Pranit Kothari31-Oct-12 18:37 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.