18
Tools of the trade
Inspired by Rob Conery’s post I’ve decided to write my own blogging engine and yes I can so see all those out there’s point that there is a massive amount of more than adequate blogging engines, CMS’s etc already out there what’s the point and in many ways I agree I’ve tinkered with wordpress for long enough now to realize how much work has gone into that to bring it to the masses and in the reasonably polished stat it’s in now. Looking at subtext etc I can see the amount of love and attention that has gone into these engines is phenomenal and in some ways it seems disrespectful to shun them and try for some half arsed has up that will be my attempt but at the end of the day it’s my attempt and that’s what matters. As a reasonably junior developer I can see all the benefits of creating my own.
Speaking as someone with 3-5 years experience in development and 8+ years experience as process Technician and Time served ToolMaker I feel little emphasis is but on skills building in the It industry. From my experience I’m sure others have varying experiences. The thing I do know is that as an engineer I had to serve an apprenticeship which meant working under mentors doing menial and often degrading task with the aim of rounding me into the finished article. Some of the initial task would involve making Items that I could use throughout my career. Plum bob’s, clamps gauges, vices the list was impressive many of which I still have in my tool chest gathering rust in my dad’s workshop. My point being that I could just as easily have gone and bought these tools, many of which would have been a dam sight better any one witnessing an apprentices first attempts at turning, milling etc will understand but they were ” MY” tools and I loved the feeling of working with something I’d made. The skills learnt producing these seemingly pointless tools transferred onto production projects and strengthened my talents without the pressure that comes with high tolerance production environments.
I can see the parallels with my current web projects but unfortunately my web learning curve is higher whilst my approach to honing my skills has been much more disjointed this I believe most (Honest) Developers will agree with. We tend to learn what we need as we need it with little structure or planning in the approach. So as part of my new aim to really push my skills in development I’m going to produce my own blog as Rob suggests and at some point show my code so I can have a massive peer review and see where my short comings are.
The engine will be written in an MVC pattern using asp.net and I will try and implement many of the patterns and practices Rob and others have championed. I’m also working through Rob’s storefront video series in an attempt to bring some structure and balance to my skill set.
18
The truth is out there..
I haven’t posted anything for a while which has been mostly due to weather, Christmas and other commitments but also due to me starting to fall into a bit of a black hole. Without going into too much detail the company I work for (It has many redeeming qualities on top of this) seems, at this moment in time, to be sucking my enthusiasm from me. I’ve been stopped so many times when trying to take a step forward or move to a newer technology, which in most cases would have saved time money and improved the product in question but I understand that more intelligent people than me make these decisions for the good of the business but it no less disheartens e when I’ve worked a large number of hours in my on time to prove a point and still get knocked back.
I’ve had it drummed into me in no uncertain terms (mostly from my current project manager, a seasoned veteran in IT) that my view of companies adopting new technologies and providing clients with exciting, responsive and robust applications is a deluded one that doesn’t happen in the real world and only took place within elite circles. I had begun to believe this view, despite the podcasts, blogs and other sources I consume on a regular basis showing me otherwise. I’d decided that my role was a reasonable one and I could just sit there crunching mediocre code that produced average quality applications. Then out of the blue I had a spate of phone calls from recruitment agents one of which was a .Net role that was asking for MVC skills this pricked my spideysenses and after a number of arguments with my down trodden inner self I went for an Interview (At the time of writing I’m still waiting for the outcome of the interview)…. Boy did I get my eyes opened; the company has an amazing new building even though they are relatively small in comparison to my current employer (our building is late 60/70s both in building and décor, Its ran on a shoe string budget where we have to move desks if the rain gets to bad). I was greeted by a very friendly Finance Director and Senior developer and proceeded to have a very enjoyable 2 hr “Interview” which felt more like an informal chat than many of my informal chats have done.
The main point of this is that I found people of like minds that believe software/web development can and should be a great experience for both developers and end users that can use modern technologies and practices whilst still being cost effective. Not just pushing change for the sack of it but laying out rational reasons why the product should be improved and having these put in place. The Finance guy was very approachable and admitted to being ready to have new ideas thrust open him and with convincing arguments would allow such projects (considering that they are using MVC as a production app already I think he’s as good as his word). The lead developer read similar blogs and was very much singing from the same him sheet as me all in all it was a fantastic experience.
I pray I got the job but have to wait and find out, which is killing me at the minute but whatever the outcome what I have found most liberating is that I’m not traveling this path alone and there are jobs available for passionate developers who like to see technologies pushed to its limits to provide users with life altering experiences (OTT but hey..). It has made me more determined to up my efforts and keep on doing what I was doing and soon a role will show its face that suites me. In the mean time I just need to make working with old COBAL and VB apps as enjoyable as possible for myself but the main things is there is a light at the end of the tunnel and there is alt.net development opportunities in North East England WOOO HOOOOOW.
16
Starting to come together
Well after beginning my rants last week I’ve had a pretty interesting week. It started off with some replies to my blog post and emails I’d sent following it up. I’ll go into one of these in detail soon. I also listened to a .netRocks podcast where they discussed if software development had become to complex. It addressed a lot of the issues I’ve been having lately and made me realize one the, the most important thing and that is to enjoy what you’re doing. I brought my head out of the DDD clouds and decided just to start playing with some of the Alt.Net principals. A current work project highlighted it’s self for this treatment and so with a list of Dimecasts.Net Screen casts and a browser loaded with codebetter.com posts off I went.
Building in the Unit Tests was pretty interesting and proved invaluable in refactoring so me of the initial code I had written. It also highlighted some of my fundamental failings with regards to C# and .Net development in General. The positive I’ve taken from this is just getting to a keyboard and creating a piece of software even if you don’t implement 100% best practices and don’t follow to the letter patterns such as DDD, TDD etc. You’ll have a good time learning and the resulting project will be a great deal better than if you hadn’t tried even if something’s are a big spaghetti it’s all a learning process, use it as such..
I Don’t(as yet) want to publish my results as they are far from finished and I still haven’t got my head round a lot of these principals to the degree where I would feel comfortable writing about them. The basis of the project was a file notification system to alert of incoming and outgoing files. The unit test where simple to introduce once I started refactoring and really getting to grips with things like factory patterns etc. I managed to drop a bit of Linq2xml learning in as well which proved amazingly powerful and has really caught my boss’s eye. I’ve managed to fit IoC into the repository which has allowed us to switch between xml and sql etc. Using the quick start guide on the structureMap site it was all simple enough. Some of the other parts are proving a bit trickier and I’ll need to read up on structureMap for things like Instantiating with constructors etc. The system will now run as a service and only requires a small amount of tweaking to make it production ready. I still need to figure out some way of testing the system fileWatcher aspects but I think that’s going to be complicated with possible mock objects etc??
All in all it’s been a really productive week and I just thought I’d let you all know how it went.
As discussed earlier I’d mailed off to a few prominent developers/Podcasters etc and was pleasantly surprised by the feedback I received, showing just how approachable these guys are. One of the best responses was from Craig Rowe a developer at Web Design Agency HeadScape he supplied me with a number of links that have proved helpful here are some of them
StackOverflow (www.stackoverflow.com) and the stackoverflow podcast (http://itc.conversationsnetwork.org/series/stackoverflow.html)
Hanselminutes (http://www.hanselminutes.com/) – Scott Hanselmans podcast
Codebetter – http://codebetter.com/blogs/
A Foundations of Programming eBook by Karl Seguin – http://codebetter.com/blogs/karlseguin/archive/2008/06/24/foundations-of-programming-ebook.aspx
In reference to Generics you might find Karl Seguins article useful: http://codebetter.com/blogs/karlseguin/archive/2008/11/21/back-to-basics-generics.aspx
Anyways to sum up after feeling a bit lost in the wilderness lately, this last week really has made me feel like I’m starting to get somewhere as a profesional developer.
10
What about us NooBs??
As Someone relatively new to web and software development I’ve thrown myself head long into the world of .Net and now seem to be spinning out of control in acronyms, design patterns and technologies that are constantly moving at a pace Bolt would be proud of.
Going back to the start of where this rant came from. I began my working life as a mechanical engineering working for a well known and rather large power tool manufacturer. I realized after completing my apprenticeship that it wasn’t for me and the declining state of manufacturing was becoming apparent even then. I enrolled on a distance learning course fro web development that taught me the basics and gave me love for web standards. I did a bit of freelancing (as I’m sure most have done) before managing to land myself a junior role in a HR/Payroll firm. I began my career bug fixing JavaScript on a legacy app written as a mash of PHP/HTML/JavaScript. I then bounced about doing a bit of Crystal Reports before being placed on a couple of PHP projects where I started to see the benefits of OOP and reusable code. After this i did a little Delphi and started into the world of windows software development before being placed on a C# project. This was the companies first look into C# and involved a “Rewrite” of one of the current Access 97 systems
To get to grips with C# I did a week’s whirl wind introduction course and bought a number of step by step books and got some Microsoft samples. There where to contractors placed on the project to help us and we fired away without any spec other than the source code for the Access apps. Almost two years on and in some ways I don’t feel much further forward, from the applications perspective at least.
The thing that has recently happened to change this was following the release of asp.net MVC I bought a book called Pro ASP.Net MVC by Steve Sanderson, All though at present I have hardly completed more than a Chapter or two of the book it has been a fantastic insight into another side of development that was lurking below the DemoWare world of Microsoft IDEs and drag and drop controls. TDD, DDD, IoC all of these wonderful things amazed me and introduced me to a professional world of software development I’d never imagined. Our companies only Architect knew nothing of these patterns and practices let alone the software required to produce them and so I set out as an evangelist for these “New” Concepts the problem is the shear vastness has overwhelmed me and caused near paralysis trying to decide which area to look into and concentrate on.
I’ve also subscribed to numerous podcasts in a hope of enlightenment with varying degrees of success but recently I listened to an episode of .Net Rocks in which someone actually described my plight. So many of the bloggers, authors and speakers have been there done that in a development sense that us noobs are getting the short end of the straw with regards to core/foundation topics. I’ve lost count of the amount of times I’ve done a google or Wikipedia search involving the words “Beginners, Tutorials, Guide, Learning” <Insert Acronym here>. Usually with very little success bringing back some 2004 guide from codeproject that involves obsolete versions of software or 404 download pages. The cases that have been fruitful normally involve either a drag and drop tutorial or some simple example that has no real world helpfulness and when trying to expand on it you end up in all sorts of knots before giving up and moving on to some other “Introduction To” tut!
I know this is not always the case and in some instances great knowledge can be taken from some of these guides and tutorials, it’s just hard to find the right ones. Paul Boags boagworld podcasts are amazing for web perspetive news and articles and where what really got me into web development and web standards. The DimeCast.Net screen casts have proved invaluable in my attempts to bring my development knowledge up to scratch and I would recommend them to any budding developer wishing to further there skills.
The whole point of this rant is to hopefully start some discussions as to how new developers can progress if they are working within a company that limits their exposure to best practice and modern working techniques. It would be so easy to say “Get a better job” but in this climate most of us are happy just to have a job or in my case feel loyalty to the company that not only gave me my break but helped me massively when my son was diagnosed with Diabetes and a I spent a week in hospital and the following weeks getting to grips with his new needs. What I would like to do is educate myself then move on to improving the companies practices by showing them what can be done. I am sure there must be many more developers in the same boat and hopefully we can start to look at things that will make us all better.
What I currently plan to do is as I learn something new post about it then hopefully other devs can pipe up with their experience. The more senior could maybe steer us in thr right direction where as the less experience can just join in and crumble about wandering aimlessly through the Acronym sea. As with my development/code I am new to blogging and can only imagine how this rant reads to everybody else hopefully you will relate to my plight and chip in with some constructive words and I can maybe improve and get the hang of it. Otherwise just slate/flame me and the developer community can lose another keen enthusiastic sole who wished to voice their opinions. Thanks to everybody that read this far please feel free to let me know your thoughts.
Digital Infamy
Twitter Updates follower me here
- Just caught @cathallison hoovering the toaster. brilliant lmfao
- Watching secret millionare with a lump in my throat. Need to go to bed but want to see the end. Little girl is amazing carer
- RT @martinfowler: An survey of ThoughtWorker opinion of Version Control tools: http://martinfowler.com/bliki/VcsSurvey.html



