How to get a job at Broadchoice

July 28, 2008

I've been watching the appointments that Broadchoice have made recently (Sean Corfield, Ray Camden and Joe Rinehart are among them) and started to think about how I could reach the same level of expertise as those guys. I'm not saying this because I want to leave my current job; I just want to be a better developer. I think that is quite an important distinction (although I'd love to work with those guys!).

I am the only programmer in my company and as a result I just tend to fall back on my current experience and knowledge to get things done as I can't learn or bounce ideas of other people. I know that there are probably better ways of doing things but in a commercial environment time is money so I just don't get the opportunity to experiment. This is very frustrating.

In my spare moments I read books, I read ColdFusionBloggers.org every day, I watch UGTV and I was even lucky enough to attend scotch on the Rocks this year. I have been fortunate enough that some people have commented on my blog posts and suggested better ways of doing things or just asked a question that has made me think about why I do something that way. I've also had some good chats with Steve Bryant recently which have been interesting. This is all valuable stuff, but I'm currently experiencing a mental block.

I believe that learning goes in phases; you have times when you suddenly understand something and make huge leaps forward. At other times you read everything you can but it just doesn't seem to be going in.

These are some of the reasons I started Devon CFUG (an official Adobe ColdFusion User Group in South West England). The group has allowed me to talk to other like minded developers about how and why they do things a certain way. I highly recommend joining a user group if there is one nearby (there are some online ones) otherwise you might want to start one. Devon CFUG has definately been a good thing, but I still need to know more.

Training courses seem to be a way to break thorough mental barriers but to be realistic they are expensive and I'd want to go on as many as I could.
My current thinking is that I need a mentor. I enjoy mentoring other people who are not as experienced as me (and do a reasonable job with the knowledge I have) but have never really been mentored myself.

I'd be interested to know how other people get through their mental blocks. Comments welcome!



13 comments

  1. +1

    I really enjoy interacting with other developers at our local users group. It is great to get different perspectives from other developers.

    I love reading blogs and mailing lists, but in person conversations offer a different flavor.

    Comment by Steve Bryant – July 28, 2008
  2. Hey John, you make a good point about mentoring. It's something that we as a community could benefit from if there was more. Like you say, there's certainly a lot one can get from both the technical content and even personal interchange of classes, conferences, and user groups (and blogs, ugtv--thanks for the mention, and so on).

    But there may be nothing better than one-on-one mentoring, where one's particular needs are identified and addressed. It's a good niche that more could serve, if they're available for it, of course, and the price is right (for both sides). There are some things where folks just can't expect to get something for nothing. :-)

    That said, I'll throw out that I'm available and interested in mentoring folks (over the web, by phone and/or shared desktop) with solving challenges related to CF troubleshooting, config, admin, and coding.

    Of course, no one person will be good for all needs. For instance, while I add "coding" to my list above, I'm not on par with many more seasoned developers. Coding isn't my day-to-day job, though troubleshooting is. Folks need to be clear on what their needs are and find the right person for those needs. If anyone would like to discuss possibilities with me, you can find more (and contact info) at carehart.org. />
    I don't think you meant for this to be a place for mentors to advertise their services--though it points out that no such directory exists. Hmm, I'd be willing to add that as a category on my "tools and resources list". OK, I just did:
    carehart.org/resourcelists/tools_to_consider/index.cfm#cfassist />
    I split the list into developers, consultants, trainers, and mentors. I've added a couple folks I could find who mentioned mentoring (including myself).

    I'll add also that Ben Nadel blogged on this topic, and there are quite a few comments from others for those interested in the topic (of CF mentoring):
    bennadel.com/index.cfm?dax=blog:360.view />
    So John, what's the "mental block" you refer to having now?

    Comment by
    Charlie Arehart – July 28, 2008
  3. I guess I'm flattered that we're being held up as a good example!

    It's very difficult when you're a lone developer of any sort. As you surmise, mentoring is a huge part of growth for a lot of people, as is networking in general.

    User groups can be good experience. Conferences are excellent - I always say you can't afford NOT to attend at least one conference a year, even if you have to pay out of your own pocket.

    The best experience is definitely working with other great developers and that's much harder to arrange.

    Comment by Sean Corfield – July 28, 2008
  4. This is an interesting debate for me. For my tennis I buy lessons. When I was drumming I progressed through several tutors as my ability progressed.

    Perhaps if I had a mentor 'on call' I would certainly pay for it. Since I'm a bit of a lone gun this makes sense.

    If my professional life was centered on programming then I would seek employment where I could learn from the wisdom of a grand master!

    As it is ColdFusion is part of the toolset I employ as a consultant in which I use other skills and work freelance.

    Whilst I don't have the opportunity to work closely with other CF professionals I still wish to develop coding skills as far as possible.

    Thanks to Charlie for adding this category to his list. A good seed. It would be nice to see this idea of mentoring grow. My thoughts aren't clear on how exactly it could grow, but I'm sure there must be some highly experienced people out there would love more opportunities to share their wisdom.

    Comment by Matt Barfoot – July 29, 2008
  5. Thank you all for your comments :)

    @Steve - User Groups are great and I'm really glad I started it. We have a small membership at the moment but I'm hoping it will grow (marketing is not my strong point!)

    @Charlie - Great idea to put a list up of potential mentors. I hadn't seen Ben's post before so that was interesting reading. This post was partly in response to a recent post of Ben's blog where he said that he'd met up with Peter Bell who helped him out with his learning of OO. Ben is clearly a clever guy, but still learns from being mentored. Unfortunately not many of us have that opportunity. A virtual mentoring/classroom could be a real asset to the community.

    @Sean - I agree with you 100% about working with great developers, they are just hard to come by! It is also a shame that you might have to think about leaving a job to gain some mentoring. I will also add that conferences are a great way to learn about new techniques/concepts but I find that because each presentation is quite short with limited Q&A you quite often end up with an overview rather than getting into the specifics of it. I want to know why I should do it a certain way as well as how.

    @Matt - I agree that the mentoring concept has a lot of potential, equally I'm not sure how. I guess only the mentors themselves can decide that.

    @Charlie and @Sean - I forgot to mention that I also subscribe to FAQU and think that is a great publication, so thanks for your articles and input on it.

    As for my current mental block. It is a combination of things. I'm about to start a bespoke project and so want to get the whole project clearly mapped out to avoid any pitfalls before I even start writing any code. I've been listening to the "Helms and Peters FLiP Out" audio which I highly recommend. OO seems to be the best way to approach a bespoke project to cope with the potential changes to business logic, but I don't have enough experience of building OO apps to feel confident that I'm not just going to get myself into a big mess! On top of that I've also been having some major server issues which has been extremely difficult to track down as I'm not a dba / windows / JVM tuning expert. Apart from that I'm doing OK :)

    Comment by John Whish – July 29, 2008
  6. @John - I think this is a really interesting post. Like you I'm the sole developer in my company and have been developing my skills gradually over the years by reading blogs and books and listening to podcasts, etc. However, I agree that it is really important for up and coming developers to have the opportunity to network and interact with more experienced developers.

    I know it is still early days for Devon CFUG, but after two meetings I already feel that I have learnt a lot and improved my skills. It's great to be able to speak to other developers to find out how they approach the same problems that I face on a daily basis.

    Comment by Simon Bingham – July 29, 2008
  7. @Simon: "I already feel that I have learnt a lot and improved my skills" - that will be because of my excellent presentations of course! :-P

    Being serious for a moment, it's good to know you're finding Devon CFUG valuable.

    Comment by John Whish – July 29, 2008
  8. On whether you should or should not attempt this project using an OO approach I would say it all depends on time constraints. If this is time pressured then this probably isn't the project. If you have some slack then then it is the perfect time.

    There will be a learning curve and it all depends on how many new things you introduce i.e. if you use a new framework i.e Coldbox ModelGlue etc. etc. and whether you want to use Object Relational Mapping etc.

    Personally I'm getting more and more familiar with OO and design patterns, but am still experimenting with the different frameworks/ORM approaches.

    The more new things you throw into the equation the more time it is going to take to figure it all out. This is pretty much stating the obvious here, but then this doesn't mean any of it should put you off if you can put in the time.

    The worst thing I always find is feeling very uncomfortable until things click.

    Comment by Matt Barfoot – July 30, 2008
  9. @John, you said at the end of your comment a couple earlier here, "I've also been having some major server issues which has been extremely difficult to track down as I'm not a dba / windows / JVM tuning expert."

    This is just the kind of thing I can and do help people with. There are indeed a lot of moving parts in solving server issues, and my experience is that a lot of problems can be solved without deep JVM tuning, so mentoring can help in finding and resolving issues in a way that can be reused by the mentee, instead of it being like bringing in a witch doctor to exorcise a demon. :-)

    As I discuss on my site, I don't have any minimum commitment of time needed to help. While it's listed there primarily as "consulting", I really do it in a mentoring way. If you or anyone is interested in that sort of help, let me know.

    Hope no one is offended at what may seem a sales pitch. John is asking for help and in this case mentions mentoring. While some may hope that such could be offered for free, we just can't always expect that, so a mention of availability as a consultant in this regard is necessarily "commercial". I will note that of course I also offer plenty of free resources on my site, as do others.

    We all know that there are many ways people can get free help in our community. Sometimes, though, it's just more effective to pay for help. I think that's part of what John was getting at in his post above.

    Comment by charlie arehart – August 01, 2008
  10. @Charlie, I did actually call you for some "witch doctor support" when our server died but unfortunately I missed you. I think it's great that you offer your services by the minute!

    If anyone is interested, then we had the RAM changed. I installed FusionReactor which gave me some awesome stats. After monitoring for a few hours I could see that the Maximum JVM Heap Size need to be increased. Since then it seems to be running pretty smoothly (touch wood!).

    Comment by John Whish – August 01, 2008
  11. Well that's unfortunate to hear. I would be bummed to hear that someone tried to reach me and couldn't, or that we didn't connect. Sounds like you're sorted now, but certainly if anything happens again, please keep me in mind. Great to hear you had a good experience with FR. I love showing that to people, and as you say it's often valuable to seeing a problem, like other CF monitors too.

    Comment by charlie arehart – August 01, 2008
  12. John,
    Just came across this post and I saw this quote from Simon:

    "However, I agree that it is really important for up and coming developers to have the opportunity to network and interact with more experienced developers."

    If you don't get it at work or at local user groups, one great way to work with, or even just learn from, other experienced programmers is to take part in an open source project. To start you needn't contribute anything: just go download model glue or coldspring or coldbox, or even something simpler/smaller, and start digging through code.

    I can't tell you how much I learn by turning on line debugger in eclipse, setting a breakpoint at the start of my code, and stepping through all the subsequent code in the frameworks I use.

    when i was building our eclipse plugin, i learned a ton by reading the source code of the junit plugin, and even by just step-debugging through eclipse rcp code itself.

    I agree it's nice (and a hell of a lot faster) to have a mentor sitting near you who can guide you. Still, failing that, there's nothing like getting your hands dirty and digging through other people's stuff. In some ways, those "Aha!" moments -- when you learn something for yourself or you finally "get it" -- that you get when you're all alone are some of the best lessons. Because you've earned your answers.

    Comment by marc esher – August 17, 2008
  13. Hi Marc, thanks for your comment.

    That's a really good point you make about using the CF debugger to step through someone else's code (yet another reason to use CFEclipse).

    I recently inherited a project written in PHP (using the Igniter framework). Whilst it is always good experience to trawl through code to work out what is going on I so wanted to be able to use a step debugger!

    Comment by John Whish – August 19, 2008

Leave a comment

If you found this post useful, interesting or just plain wrong, let me know - I like feedback :)

Please note: If you haven't commented before, then your comments will be moderated before they are displayed.