This is a follow-up to my last post, Looking for CF people, or CF work? What can you do?.
In that one, I focused mostly on helping someone who WANTS to stay in CF, or as important, those who HAVE WORK TO OFFER in CF but have a hard time finding people.
Now this is for someone on the other side of the fence, who is now out of work in CF (by choice or circumstance) and needing to find work OUTSIDE of CF, and can't wait to develop new skills.
(I plan to do one more post, where I focus instead on what someone who is currently IN CF may want to consider as things to focus on to expand their current skill set, while on that job or in off time. There's no denying that that's in everyone's interest.)
But my point here is that many of us probably have more particular experience with general IT topics than some may believe.
The stems from a lament from a long-time CFer that not only could he not find any CF work at all where he was (and telecommute was not an option) but more important he felt that he's "stuck" because he can't seem to get any other work because "everyone wants 2-3 years' experience" in whatever new tech he's interested in.
But is he really as stuck as he feels? I think CFers may be surprised if they stop and think about what else they probably have come to know over their years of experience in CF-land. Of course, everyone's situations are unique, and I don't mean to downplay the seriousness of his seeming plight.
But since his comment was one in another blog post I have here, as I started to reply more broadly to him and other readers as well, I thought it may be better suited as a blog post of its own. And certainly, others may want to chime in with still more ideas than I came up with.
How might you seek other work with skills developed while a CFer? Let me count the ways
Here are just several points. Again, I developed these in about 10 minutes of consideration as I wrote the comment and started thinking of more and more, and facets within the major areas. I'm sure we could list more, and I welcome your feedback.
(Before you do share any, please see the last section below to make sure it's not off-topic for the purpose of this post. I'm NOT talking here about "what could a CFer do to get better, or move into a new technology". There's nothing wrong with it, but it's not the point of THIS post.)
And I get that any one person (or even many in some class) may NOT have all these skills or much marketable experience in any one of them. I'm just trying to help a person without work think outside the box that they "were just a CFer". (And of course, many of these would apply to someone just out of or leaving some other web technology, and as they have yet to hone skills on some new one.)
Don't you have SQL skills?
For instance, CF folks tend to know SQL. Sure, they may use it to a fault. :-) And some may not have learned it well. But even though NoSQL and other such DB technologies are becoming popular, there's still PLENTY of SQL used worldwide.
And even as some orgs may be moving to using less SQL in their web app code as a practice, that's good news for our erstwhile CFer: if an org instead puts lots of their SQL in stored procedures, etc., then they shouldn't care as much what web app platform the calls come from. And so your experience with some specific one only should not be a limiter. (Indeed, it's generically useful.)
Might you have DBA skills?
Indeed, you may have even developed DBA-level skills with whatever DB you DID use. And some of you have used more than one in your CF experience. And let me tell you: some "real DBAs" are pretty clueless about DB activity as it comes from dynamic web app development environments (whether CF or PHP or .NET or Java or Ruby or Python, etc.), so you may even have a leg up on them.
Think of your own interactions with DBAs in your career. Even if you didn't want their job then, didn't you sometimes think you could have done a better job? :-) Maybe it's true!
Have you done any front-end development?
But many CFers have probably had at least a modicum of front-end development experience, and perhaps got into ajax and JS frameworks. Those can be transportable skills to another web app platform (generically, if not specific to some particular framework).
Indeed, some would argue that UI SHOULD be separated from the back-end web app platform, called as a component layer. You may have already done that in CFML, and so could help an org out with the front-end, despite their different backend.
Did you integrate CFML with anything else?
Of course, I realize some people only ever "integrated" with a database, but did you ever learn about integrating CF with Solr (the open source text search engine in CF9 and above), or ehcache (the open source caching feature in CF9 and above)?
Did you do any integration via XML, web services, JSON, or REST? Did you get into mobile development at all?
Did you get into JVM tuning, troubleshooting, or monitoring?
Some folks have had to get a fair bit deeper into these things than others. If you did, that's of course transportable. Or if maybe not enough on its own but in conjunction with other things above or below?
And if you ran CF on CF10 or above, did you start to get into Tomcat configuration, tuning, or troubleshooting?
What about the web server you used? Apache? IIS? nginx?
That is of course transferable almost entirely, regardless of the web app technology, or you only need to learn about the particulars of integration into some new web app platform.
And as with DBAs, you may know much more than someone "focused" on a given web server but perhaps only for a couple of years. You may be able to quote version numbers and years of prior releases, and more important help an org take advantage of features they maybe missed (same with the DB).
(And we could stretch this generally to point out how you have OS experience as well, but I think that's pretty self-evident to most.)
How about web app security?
Did you get into web app security? Could you help folks in another language with implementing protections against sql injection, cross-site scripting, cross-site request forgery, and the myriad other security vulnerabilities that plague some shops--and they may not even know it. These are fairly generic skills (though I grant many don't know them at all).
And experienced developers seem to hate doing that kind of tedious remediation work even in a language they know and enjoy.
You might even find a shop willing to take on someone with less experience, as long as they could help prove their ability by getting security scans to stop showing vulnerabilities!
Or you could be on the side of running the security scans, if you have general experience with the topic.
How about more mature coding practices? testing in general?
Same thing in this space. Some shops languish with old coding practices. Might you be well ahead of some of them in terms of better practices, such as continuous integration, unit testing, code release management in general? testing in general, like functionality or load testing? how about prototype development?
Or how about more broad management-level skills?
Were you involved in some aspects of project management, even if it was not your title? How about scheduling? planning? running meetings? implementing pair programming? running brown-bag lunches? Again, think broader than just your specific CF experience. You may be able to do any or all the above for someone new, even if they don't use CF and you don't yet have experience in whatever shiny newer not-dead-yet technology they DO have (and whether you want to get into that or not).
And of course more broad and modern IT skills?
I don't think I need to both pointing it out but of course if you have skills in virtualization, containers, and the like, well, you should already realize that you could find work with those things. I was trying to tease out the less obvious things.
What this post is and is NOT about, and feedback I will (or will NOT) appreciate
So, I hope you get my point in this post. Those items above are what led me to want to start writing this "comment" instead as a post of its own. I hope it helps someone.
Even so, I'm sure I've missed some, so I welcome feedback. I'm sure there are other generic topics like the above that some may be able to transport to a new role. After all, the points above came about from only about 10 minutes of thinking as I was writing up the comment reply, and I'm not myself in the market. :-) (I love doing the CF server troubleshooting that I do.)
That said, before some may want to jump in with their suggestions, and though I've tried to make clear in the above what this is about, I want to clarify again that our focus here is on what they can do if they're or just about to be OUT OF A CF JOB now and either unable or unwilling to take another CF job.
My point here is to help them think of what they may ALREADY know but not realize could be marketable. And of course, even that marketability of any one thing is itself relative in a number of ways.
Along those lines, there's no need for anyone to feel the need to point out other specific technologies that folks ought to "be doing instead of CF". Again, this is someone under the gun now, not seeking to "learn something new". The person who prompted it was specifically complaining that they couldn't get work in some new tech because they were being finding they needed to have 2-3 years experience in that tech.
(I'm repeating this for those who may have only scanned the bullets and jumped here to the bottom, assuming of course they read this last section before commenting.)
And I realize some may want to point out that plenty of opps DO exist that you KNOW of in some new tech that DO NOT require that much experience. I get it. This was HIS dilemma.
And again, this is NOT a post about what someone doing CF OUGHT TO be learning to expand their abilities. I said at the outset that I do plan to cover that in another post. There are lots more topics one COULD sink their teeth into (well beyond the above).
Finally, of course, do I need to say it? This is not a place to bash CF or CFers, so we don't need to hear from those wanting to point how CF is dead (see my response to that in the last post). It's just not the point here.