Archive for February, 2010
Callout for Speaking Opportunities
by Daniel on Feb.22, 2010, under community, development
As you can probably guess from the title – I’m openly looking for opportunities to speak at user groups and conferences – it’s something I’ve always been interested in and I’d absolutely love to do. I have a few things I’d potentially like to talk about – from my previous post you can probably tell I’m a massive advocate of learning – we work in an industry subject to Moore’s law. We can never be too clued up nor would we want to be out of the loop.
I previously submitted the following session for the DeveloperDeveloperDeveloper 8 conference and would be more than happy to present it at your local user group and / or conference if it sounds like something you and your attendees may be interested in:
Learning the ‘right’ way
There are many different methods of learning how to develop, design and manage
effectively, efficiently and do things in the ‘right’ way. This begs the
question – what is the ‘right’ way?
Is it via reading books, reading blogs, or not reading at all?
Is it via pair-programming, code reviews, and how does this affect the
learning process?
In this session, Daniel May will be going over the common ways to learn a new
language, pattern or aspect of development and design, and suggesting
improvements and recommendations to these methods.
Subjects covered will include learning from books including publication choices
and recommendations, learning via pair-programming and code reviews, learning in
the workplace with internships, official Microsoft training (.NET) and much
more.
This is the only session I have a complete (ie 100% finished) presentation for – however I am able to create session agendas for the following subjects; “Beginning Silverlight Development from a WPF background”, “Best Practices – Just how ‘best’ are they?” and “Learning to not dread fridays”. All of these are sessions in progress at the moment and I’d be more than happy to finish them off in due time should there be a demand for them.
If you are interested in any of these sessions or have any questions, please do not hesitate send me a mail at daniel[at]danielmay.co.uk. (Note: This isn’t only open to opportunities in the UK!)
Me: A Unique Case
by Daniel on Feb.19, 2010, under development, meta
I’m gonna talk about myself for the majority of this post, so if you don’t find me interesting – it’s probably not worth your time. Thought I’d warn you.
As many of you know, I’m young. I’m 17 years old with a permanent job in software development – which is rare. I don’t think I’ve come across anyone else with a professional software development job this early on (most probably because all the other teenage nerds are taking the standard college –> uni –> job approach) – but if you’re out there, contact me!
It’s not been easy, but it’s not been particularly hard either. I have been developing actively since I was around 11 years of age, with advice from my father and an introduction to the basics by him. I was instantly interested and wanted to learn more. I loved it. I loved the moment I wrote my first program, to the moment I moved on and wrote my first line of PHP code. It is my passion, and I discovered it at a young age. This is when I first started self-learning.
The first book I ever bought was “Teach yourself VB.NET 2003 in 21 days” – Granted, it was a “XX days” book, but it taught me the basics of what I needed to know. Best 3 weeks of pocket money I’ve ever spent.
I continued to code, moving from VB6 to VB.NET to PHP, including MySQL, playing around with python and various other languages. This kept me busy throughout high school – I scored a number of freelance jobs doing things ranging from data entry to MySQL database design… I daresay I was earning more than the majority of my high school friends, at the price of having next to no social life. I kept learning through various portals such as online tutorials, problem solving – I was so interested about 90% of my time outside of high school was spent learning for my passion, knowing that at some point it would reward me.
Then came GCSEs. I took a course in DiDA (Diploma in Digital Applications) which I thought would help me carry on to take a computing or programming course at college – it did, but it was nowhere near as technical as I was at that age. Unfortunately, VLOOKUPs in Excel aren’t something I want to be doing for a career – each to their own, though. Albeit bored, I passed these and even got to do some HTML and CSS in the end. Go me.
I finally made it into college and took a computing course – much to my dismay, they were teaching VB6. VB6 in 2008/9. A ten-year-old technology being taught? I can understand the reasons for doing so (simplicity, being eased into development), but was VB6 really the best option? Why not Python? Support for VB6 ended in ‘05, extended support ended in early ‘08. Either way, it was a breeze for me and I was accepted onto the gifted and talented programme. Good stuff. Unfortunately, it was nearing the end of my first year that I decided I didn’t want to do this anymore. I was sick of the constant VB6 re-learning, sick of being miles ahead of my classmates (imagine this as modest as humanly possible). It wasn’t fun and was no longer interesting. I dropped out.
I grabbed myself a few books outlining .NET, compsci concepts, algorithm development and read quite a lot of online blogs – and this helped me reach my first job. A professional .NET development job for someone with purely self-taught knowledge.
It is this that I believe separates me from the crowd. I didn’t go to university. I can’t tell you intrisically how the floating point system works nor can I tell you precisely how the garbage collector in .NET completely works. What I can tell you is that in time, I will know. I will learn these things. Either by myself or via tutoring.
I by no means claim to be an expert. I merely claim that given time and training, I will be. I was born for this.
- Daniel May
DDD8 Post-Conference Overview
by Daniel on Feb.02, 2010, under community, ddd, development
Last Saturday (30th Jan) I attended DDD8 – my previous blog post describing my general excitement can be found here.
I’ll start off by saying I had an amazing day meeting fellow like minded developers and getting to see some of the sessions I’d been looking forward to seeing since they were proposed. Below are the overviews of the experiences I had with the sessions I attended:
Real World MVC Architectures by Ian Cooper
This was the first session of the morning – as much as I enjoyed the session overall, I had a bit of trouble keeping myself awake after waking up at 6AM on a Saturday – ha! I thoroughly enjoyed this session though, it gave a real overview of MVC in a nutshell as well as leaning into a bit of MVVM with ViewModels being mentioned also. This session dealt with all the common misconceptions about MVC also – just because you can use MVC, doesn’t mean that you should or that it’s going to improve your website instantaneously, you’ve got to be wise. Overall, a great session – and I’m glad to hear I wasn’t the only one drifting off due to the early start
Lessons Learned on Unit Testing by Andrea Magnorsky (was originally attending Commercial Software Dev, switched)
Another great session here – I’ve always been a bit of an advocate of unit testing so it was great to hear Andrea’s take on TDD as well as hearing some general tips from what she had learned from using TDD. She mentioned an excellent book – The Art of Unit Testing by Roy Osherove – which is a truly invaluable read if you have the time. Andrea mentioned multiple different unit testing frameworks such as NUnit, XUnit, along with recommendations for IoC frameworks such as NInject. One thing emphasised throughout the entire session was the importance of meaningful names for unit tests – this helps when referring back to retest months later. There was more information regarding the creation pattern, Mocking, Stubs and overviews of potential test code smells. I learned a lot from this session and Andrea did an excellent job of getting the gist and point of the session across.
C# 4 by Jon Skeet
What can I say? This session had its distinct popularity from the fact there was next to no room for anyone in the room. I hear over 240 people attended this single session – I’m thankful it was over two conference rooms. Skeet went over the main new features of C# 4 – sadly minus his furry friend Tony the Pony. Named Arguments, Default Parameters, Generic Variance (Covariance and Contravariance), Better COM integration and dynamic types were the new features presented and in an excellent way in my opinion. There were around 7 slides for the entire session, simply explaining the agenda. The way Skeet managed to catch the attention of the audience without the need for further explanation via slideshows – by simply using Visual Studio was inspiring. As much as I think I might need to have another, longer look into Covariance, Contravariance and Generic Variance as a whole, I took a lot from this (especially after not being a C# in Depth MEAP!). Wholly enjoyable session not only due to the masses of information crammed in, but the gentle banter Jon Skeet works well with.
Not Everything Is an Object by Gary Short
I don’t know whether it was Gary Short’s distinctive Scottish accent that captured my attention or if it was the excellent overview of OOP over the past 50 years. Either way, my attention to this session was focused solely on what Gary had to say. The audience were taken back to the 19th century and through the beginning of OOP, functional programming and eventually somehow we ended up with Clojure. Not my language of choice but it was interesting to see how Clojure can simplify multi-threaded programming. One of the memorable quotes from this session would have to be: “How many of you do multithreaded programming in your day-to-day job? And how many of you find this easy, simple and enjoyable to do?”. Needless to say many hands went down after the latter question. I enjoyed this session because it not only went over the origins of OOP, but the downfalls and benefits of using a OOP language.
A Developer’s Guide to Encyrption [sic] by Barry Dorrans
Now this was about the funniest time I had at DDD8. Between the constant humiliation of Barry and Ben Hall (whose birthday it was on the day) – there was some content on Encryption and to be quite honest, I actually took a lot from this also. Refining my skills about hashing, salting, encryption keys (public & private) and the different algorithms now internationally accepted or deemed ‘unsafe’ was extremely interesting. Truth be told, Barry might have done better with a spell checker (if you’re reading this Barry, check this out) but overall the session was not only involving and interesting, but turned into quite a laugh.
Overall, I had an amazing day. I loved meeting new people and networking (@silverspoon, @colin_gemmell, @blowdart, @jonskeet, @rorybecker) with some of the people that help the whole development community come together like this. Obviously need a few thanks – Thanks to @plip, @zimakki, and all of the mentors mentioned above. Along with Microsoft and DevExpress – and not forgetting SQLbits without whom I wouldn’t have made it to the conference area!
—
The only problem now is I wish DDDSW was closer and we had DevEvening weekly instead of monthly. Ah well.