I am a programming student in college. A company that uses ColdFusion has offered me an internship. Would it be a wise move, career wise, to take this internship?
It would be wiser to take that internship than have no internship/job. However, be aware that ColdFusion isn't viewed ... all that seriously by many in the development community; but many of those who do use it swear by it. So, you will make yourself that much more valuable by having knowledge of a fairly "obscure" language and you may learn a technique/trick/methodology from ColdFusion that you can apply to other languages.
You'll also have the benefit of learning everything else that the company has to offer (engineering best practices, etc.).
If you have never been offered an internship before, then I would say yes.
Rumors of ColdFusion's death have been greatly exaggerated, and some tools that Microsoft created are based on ColdFusion principles.
In this economy if you don't have any other internships available to you then I would jump on it. That said, you might want to consider what you will get from this versus spending the time on something else. ColdFusion is a fairly old technology but if you are tracking other languages and tools outside of the internship I don't see a major problem with it. There are really too many factors and information that you are not able to provide with your question to give a great answer to this.
I worked for 5 or so years in a ColdFusion development company now I'm programming in PHP. ColdFusion has been slowly losing popularity over the years but a lot skills you will learn will still be relevant for other web based development languages especially with the growing emphasis on front end code since web 2.0. I found the move to PHP to be pretty straight forward as both languages are basically designed to do the same sort of things.
So I'd say go for it, it will be a good place to get a solid grounding in web based programming and give you plenty of opportunity to learn JavaScript and database code as well. But I would advise choosing a more popular back end language to get familiar with in your spare time as ColdFusion jobs can be a little hard to come by and it might get worse in the future.
Good luck!
Take it. ColdFusion may not be a "growing" language to some (it actually is growing in use, albeit slowing), but it's far from unused. In any case learning ANY language is useful - ColdFusion, especially, if you want to focus on Web applications.
Learning ColdFusion (or ASP or JSP or PHP or Ruby or....) well will give you:
+) An understanding about HTTP transport and how it works in an application: what runs where (server/client) and how the two parts interact.
+) An understanding of all common programming constructs: loops, variables, pass-by-value, pass-by-reference, boolean math, etc.
+) An understanding of all common programming methods: procedural programming, OO-programming, recursion, threading, etc.
Learn ColdFusion well and you've more than half learned every other web application language as well - the hard part is always the theory and best practices. Don't get bogged down in the syntax.
Unless you have other offers, I would say to absolutely take it. ColdFusion is a programming language, so you will be getting real-world programming experience to put on a resume some day. Plus ColdFusion experience will train you in web development, and it will teach you the same principles that are used in .net, J2EE, and especially PHP development.
Having full-time working experience on your resume helps a lot when you graduate, to give you an edge over other students who may not have working experience. Plus, you'll have other languages (Java? C++? C#?) that you are using in your college courses, so it's not like ColdFusion will be the only language you're capable of using.
In my own experience, I had a summer internship in an IT department where I learned a lot of Access and SQL stuff, which happened to land me a co-op job the next summer as a software tester at a cell-phone company which happened to want someone cheap to build an Access database for them. The next summer, with two full-time internships under my belt, I had an edge over other students in applying for another co-op position at IBM, where I was a WebSphere tester. Even as a tester at IBM, I got the chance to write Java code (to test WebSphere you have to write WebSphere apps). So by the time I graduated, I had a full year's worth of experience, which stands out for someone hiring an entry-level employee. In fact, my manager at my first job after college specifically told me (after hiring me) that one of the main factors in her hiring decision was that I had experience at a 40-hour-a-week work for a similarly-run corporation.
Now, of my three internships, only one touched on any actual programming, yet it helped me greatly to get where I am today as a programmer. So I'd say an internship where you are actually doing programming, even in ColdFusion, is a great idea for your future.
I cut my teeth on CF for server-side programming (just before 4.0 came out, and it was still owned by Allaire)
From what I've heard from old coworkers, it's still kicking some ass.
It's an internship. Try to get a sense of how smart the non-interns are. If they're smart, and it's your only current opportunity, jump right in.
I managed to very painlessly move from CF to Perl/PHP/ASP (classic in those days) nearly 10 years ago.
Server-side programming is server-side programming. Especially when you're young and inexperienced, don't fret about the language.
Instead, take an internship where you'll work for smart people who know their poop and can teach you. You're there to learn big-picture stuff, not become a niche specialist.
Take it!
Take this opportunity to learn these skills, concepts and tools while you get paid, how nice is that!
- How Session work over HTTP
- Practice writing good SQL
- web app security (XSS, SQL Injection, DB, etc...)
- MVC pattern (any MVC framework like Model-Glue or ColdBox)
- learn to use SVN or Git or whatever source control they use
- ORM like Transfer, Hibernate if they're using CF9
- jQuery!!!! LEARN IT! You'll need it sooner or later
- DDD (Domain Driven Design), if you get to design anything
- Unit Test (with MXUnit or CFSpec)
- Setup Eclipse with CFEclipse and other useful plugin's
- IoC (aka ColdSpring), if you get to design anything
- explorer the power of typeless language (e.g. Duck Typing)
- Watch as much UGTV and Adobe TV on CF as you like or when u have time.
- If you need help or any question, ask here (stackoverflow) or the CF Twitter Army, I'm henrylearn2rock btw. You're welcome to follow me :)
- Learn RIA (Flex & AIR with CF + LCDS / BlazeDS) for awesome desktop experience
You see? Many of these are high level enough that you can learn and carry over to many other web-programming languages!!!
If you have time, join some CFMeetup LIVE session, very cool, FREE! http://www.meetup.com/coldfusionmeetup/
Granted, I work for Adobe as an evangelist, but I say go for it. I would repeat a lot of points made here. Especially that we have tripled the size of our developer base in the past 4 years to the tune of 778k.
That being said, I would throw in that interning in a ColdFusion shop is not going to limit you to only learning ColdFusion. You don't typically just use ColdFusion to exclusion of all other tools at every level; there are several technologies that tend to be used with ColdFusion that are also valuable to learn:
- HTML
- CSS
- JavaScript
- Some flavor of SQL
- Flex
- Ajax Libraries (JQuery, ExtJS, Spry being the most used in this space)
So, as an internship, look at the entire stack you get to play with, not just one piece of it.
Coldfusion experience pays quite well. Most Coldfusion developers are busy and can take on only so much work, there is always extra work in CF for some reason, which is great for new developers.
At the end of the day a language is just syntax. Learning to solve real world problems with appropriate architecture, processes, etc., is invaluable that you will take to any lanugage. I would not look at life as only learning or working with one language.
Good luck!