In high-school, I took a class in QBasic. And it was awesome - super awesome!! The moment I turned a line of code into a visual screen element, I was hooked. I knew from that very moment that computer programming was what I wanted to do with the rest of my life. And, when I started applying for colleges shortly thereafter, I made sure to declared my major as "Computer Science".
In these applications, I always applied to the Liberal Arts colleges - my mom wanted me to have a well-rounded education. But, due to a system glitch (ironic!), I was eventually accepted to the School of Engineering at Tufts University. At first, I tried to switch back to Liberal Arts; but, when I found out that engineers didn't have to take a foreign language requirement... "Sorry mom, they said I couldn't switch schools." Six additional engineering credits was well worth the complete absence of verb conjugation exercises.
In college, I was introduced to classic computer programming languages like C, C++, Java, Lisp, and SQL. I also started getting into web programming with languages like [classic] ASP and PHP. For a few semesters, I even acted as a Teaching Assistant in the web development classes. I really loved that I could create widely available content on the web. But, ASP and PHP never felt good. They got the job done; but, they never made things easy.
As it turns out, I'm pretty good at breaking other people's code. I would get sent a link for testing and would return shortly with several pages of changes that needed to be made. Needless to say, I was quite the popular guy. One day, I delivered a list of edits to a frustrated programmer who told me to, "stop giving me lists and just fix the problems yourself!"
And so, they started teaching me ColdFusion.
ColdFusion 4.5, I believe.
As my first learning project in ColdFusion, I created a small web application that would allow me to aggregate a collection of quotes that I had collected about Love and Relationships. Yes - I have always and will always be a hopeless romantic.
When I showed this application to one of the managers, she jokingly said, "You don't actually believe in all this crap, do you?" Of course I do - it's Love. But, that's neither here nor there.
What's important is that when I started using ColdFusion, it was like the whole world suddenly made sense. It was like getting high-fived simultaneously by Chuck Norris and Arnold Schwarzenegger - sure you may dream about such an experience, but you always know deep down inside that it's just a dream.
But, with ColdFusion, it was happening! Here was this language that was insanely powerful and, at the very same time, insanely easy to use. Unlike any of the other programming languages that I've tried, ColdFusion just made "sense;" it was the "right" solution in all the ways that things like ASP and PHP were wrong.
That was something like 9 years ago and I haven't looked back. Since then, my love for ColdFusion has continued to grow. With each new release of the language, it continues to become even more powerful, even more efficient, and even more invaluable. With ColdFusion 10 on the horizon, it is a mature language. And, as it continues to adapt to the changing web world, I have no doubt that it will continue to hit the sweet spot of need - the perfect mixture of power and ease-of-use.
In the early 2000's, I was just a boy that got an internship at a company that happened to use ColdFusion. And that, my friends, is serendipity.
This post was inspired by Steve Bryant's suggestion to make August 1, 2011 the "How I Got Started In ColdFusion," day.
I really like your post Ben. I started with CF 4.5 good times!!!
Glad this is a post about CF and not Flash since Flash is dying with Adobe Edge.
Like your post Mr. Nadel.
I recently switched to ColdFusion in my new job and loving it.
I like all the articles written here and they help me in better understanding of it.
Great article.... I started with CF 4.5 too!!
Great post! Sounds like we both had the same sort feeling when we got started with ColdFusion versus other languages :-)
Steve had a great idea with this day, loving reading all these "how I got started" posts :-)
If Ben Nadel were to create a machine, it would be a love machine.
The reason why you were so good at finding problems is that you constantly push the limits of what you can do with a given piece of software. I too used to get complaints from Tom Leonard that I found more bugs in TML Pascal than any other user he had. He had the same exasperation with me that your frustrated programmer did.
I got started in web development using pure C and Sapphire/Web, a framework for C-based CGIs. That allowed me to do ANYTHING that C could do, which as you doubtless know, is a helluva lot.
My workplace asked me to evaluate an early CF version (2.something or 3.0, I think). At that time, I pronounced it lame, let's not use it. But then, I was comparing it to what C could do. We adopted CF at 4.0, which was when the big explosion of features happened and it got majorly usable. 4.0 could do some things that even later versions couldn't, such as reload a Java CFX without restarting CF Server. (I really miss that feature.) And 4.5 gave us cfdump, my favorite tag ever. You guys who said you started at 4.5 are lucky you started then. CF without cfdump isn't nearly the joy that CF with cfdump is.
Nowadays CF is such a pure, unmitigated joy. So easy and yet so powerful. It feels like wearing a "mech suit" like Iron Man or the mercenaries in Avatar.
Awesome article. Kind of reminds me of how I started in Coldfusion. At my first job, I was just given a task and a book about Coldfusion MX. After that I was hooked. Hope I stay as long as you.
I started as intern in 1998 with Allaire Cold Fusion version 3.1 at a big financial company and worked my way up to Macromedia ColdFusion version 5.0. Right after version 5, I had a change in career and a pretty long break from CF until version 7 when I started to build websites as a hobby. I love ColdFusion. Thanks for posting this Ben!
Thanks guys! Glad you liked it. I can't wait to ready the other stories people wrote. In case you missed it, a whole bunch of people posted their links on Steve's blog:
Should be some good reads!
Ha ha, It feels like wearing a "mech suit" like Iron Man...
I started with CFMX. I love CF not only for how easy it is to use and powerful it has been, but because it's seemingly the hated underdog of web application languages.
I like rooting for the underdog. :)
As it stands now, the cost for deployment is about the 1 major downside to CF; but even then, any company worth its salt can afford the expense, especially with how quickly we can turn around with applications.
Yeah, I love a good underdog story :)
Ben was the best (and only) intern we ever had. I wish we could have worked together for longer.
I am trying to remember how we got started with CF. I think it was Chris Tweney who introduced us to it in 1998. Before that I used IDC/HTX, a pre-cursor to ASP. I had no idea what I was doing.
I never learned CF myself (or any other kind of real programming). I just find the cool tech (jQuery) and let you do the rest.
Koko Interactive...good times, good times. I hope we left people better than we found them.
First, before I start the usual book, let me say, awesome post, @Ben! How lucky I am to have stumbled upon it today! I love this and everybody's stories. I have to add mine, but I have to add an explanation that goes further back (a little bit) than my start in ColdFusion, because I think that is relevant.
The start of my reply goes back to "how I got in web development". The reason I am starting here is because without the backstory, I am afraid my ColdFusion story would be lacking, empty, and not really make too much sense in the conext in which it needs to be understood. I started out college actually avoiding mathematics. I had no idea, at that time, how good I was at mathematics, or how I would come to love the study of mathematics. But all I knew, at that time, was that my main goal was to avoid it, at all cost. I would take anything as long as it assured me that the course of study would minimize the amount of mathematics courses I would have to take.
My father thought I was insane, because he knew how good I was in math. He had struggled with me through all of my high school courses, and eventually had to quit teaching me and allow me to teach myself due to my mathematics courses eventually getting beyond his level of expertise. He continually tried to get me to change my mind about trying to avoid mathematics, but to no avail. Me, being a stubborn, rebellious (somewhat) teenager, of course was going to do the exact opposite that my parents were telling me I should do.
So I entered college as a pre-law student. I chose the pre-law course of study, because it minimized the amount of classes you had to take in mathematics. I was on my way to becoming a star attorney. I particpated in mock trials and was an excellent mock lawyer. I wrote the most amazing arguments that had been written since the time of Balzac (when you didn't need an actual law degree to argue a case). The arguments I wrote as a mock lawyer had lines and lines of red ink underlining my argument with words out in the margin of "great!"..."awesome!!!"..."best argument ever"...etc. As an undergraduate, I studied many foreign languages courses, because...you see. I love foreign languages. Well, to be exact, french. There may be other foreign languages I like as well, but I haven't really studied any of the other ones to any extent where I can really claim any exposure to them. But, boy have I studied french!
This is leading somewhere (with the french classes discussion). Anyway, to be sure, I did actually get into law school. I got in a year early, actually...meaning, I went to law school without an undergraduate degree at all. In order to gain admission to law school, I had to take the LSAT. While preparing to take the LSAT, I was introduced to these things called "logic games". This was the first time I was ever introduced to anything programming-related, really (sort of...this goes back to my french classes, but I will get to that in a minute). I realized while preparing for the LSAT that I loved these logic games. Which is unusual -- most people want to get past that part of the test, but I couldn't get enough of them! I felt like I had met what I had been missing all of my life! :-)
Anyway, fast-forward to law school (I'll go back to the logic games in a minute). Obviously, I did not finish law school -- I dropped out. There were many reasons for this, the most prominent simply being I lost interest in the law, snd that was a very expensive hobby to be involved in simply for the fact of it being a hobby. :-/ But I was also sick, which contributed to it as well. ANYWAY...it was while I was in law school, in the law library, doing legal research, that I noticed these things called "web pages" that the results of our legal research was being served to us on, and I was just endlessly fascinated with these things! Naturally, I was very, VERY curious as to how these things were published to the web. I was much more interested in that and in them than I was the legal research I was supposed to be doing!
So I started doing research. One of the first questions I ever asked the web, I think, was something to the effect of "how do web pages get published to the web?". Of course, I was then promptly introduced to HTML. And just as soon as I saw the first tag of HTML, I was eager to write the tags and publish it to a web page. So I decided to undertake a project which would require me to do that. And, when you are in law school, you do not get to see your friends and family as much as you would like to. Also, I was in love at that time, and I never got to see my love...not nearly as much as I wanted to. :-) Therefore, this first "project" I imposed upon myself was a page/site that would help my friends keep up with me and keep in touch with me without having to actually talk to me in person. Kind of, I guess, like a "virtual me", somewhat. I wanted the love of my life to be able to see me every single day without having to actually "see" me.
So I put this site up. Then, I later dropped out of law school. Well, we didn't actually have a "computer science" program per se there, but we did have some programs which revolved around computers. Anyway, a friend of one of my friends was in one of those programs, and we all went out to eat one night (this was after I had dropped out of law school). Anyway, it was during this dinner discussion that they asked me what I was going to do with my life now that my interest in law school had dropped so dramatically (I had gone back to undergrad, because I wanted to get an actual degree...to me, it was a waste of 4 years to have gone 4 years and not have a degree).
So, I told them I had no idea. I told them I loved french, but I just didn't see a future with it, even though I loved it. And the computer science (sort of) guy said, "well, then, you should consider computer science if you love french so much, because computer languages are just like foreign languages. It's code, but it is very similar to foreign languages. And there is a huge future in it, too. So you should really consider it.
And that was the conversation that changed my life, or at least the course of it, forever. I decided...during the course of that conversation, that I was either going to change my majors and take a little longer to graduate, but graduate in something that was related to computers, or I was going to go BACK to school after graduating and either get a master's in computer science OR a second degree in computer science. Since I already had 3.5 years, I decided to go ahead and graduate in a completely unrelated degree, and then go back. I was set to play it by ear, but probably go back.
So I went ahead and I graduated. Then, the following semester, I enrolled as a computer science major. I was interested in getting a master's degree in computer science, but when I went to the college they gave me 6 pre-requisite classes that I needed first. So I set to take them. When I was in my very first programming class (C), the teacher gave us these very familiar games. The were the exact same games that I was introduced to while preparing to take the LSAT to get into law school. I quickly became friends with that particular teacher, and we talked about these games, which I loved. He told me that before they had computer science majors and graduates, companies like IBM would give out these exact same games in a test to see who had the actual aptitude to be a programmer, and then people who scored high enough on those tests would be trained to be a programmer. Which I thought was interesting.
So, anyway, even though I enjoyed my studies as a computer science major, the college I was at had NO program specializing in web languages, and the web was what I was especially interested in. So during that time, I heard a commercial on television about one of those training schools that had a web-specific program that you could get an associate's degree in. So simultaneously, I took both the computer science classes AND the web development classes for my associate's degree...and that is where I really learned html, database, etc...everything web-related. The school had a deal with its students that if you finished there, and then later, they offered a class that they had not offered while you were there taking classes, you could take that class and only pay for the book, but not for tuition. So while I was there, they did not have a ColdFusion class.
Then, my father's work was hiring for a web developer. By chance, it happened to be that they were hiring for a ColdFusion developer. Well, my school had never taught it, so I had never learned ColdFusion, but I decided to interview for the position anyway. Before I actually went for the interview (and after I submitted my resume), my school announced that they were going to start teaching ColdFusion, so although I had never taken it before, I had an opportunity to take it for free. So I signed up for the class, and it was unfortunately to start AFTER my interview. So, I went to my interview, and told them that I had never programmed in ColdFusion, but was supposed to start a class soon and would be learning it very soon. They really liked me...enough to ask for a SECOND interview with a skills test involved. Well, between the first interview and the second interview, I was able to take a couple of classes, because it had started at that time. So I went into the skills test with a few classes under my belt, and just a little bit of knowledge of ColdFusion.
Needless to say, I did not get the job. But I did get a job in asp, which was a really cool job. So I got to work with that and have experience with that while I finished my class in coldFusion. The project we were doing was building a scooter store complete with a database. I was the only student in the class who finished the project.
Not too long after the end of that class, my school called me (they are one of those schools with a job placement program). They had an interview for a student with a local top news station. I was so nervous! The job was for a ColdFusion developer, and I had never had a job as a ColdFusion developer before. But I wanted this job something bad, because it was a really, really REALLY cool job. Even though I LOVED the company I was with writing asp (with an sql server backend), I wanted a career change to ColdFusion. In even just the class I took , I had noticed how lovely and awesome the language is! So I aced the interview and was offered the position. (just so you know how cool this position was...they put a television in my office and encouraged me to watch it throughout the day as I coded. And that actually helped me be MORE productive throughout the day as I coded).
When I left the previous position, they were in the process of going from asp to asp.net. After I left, I ran into one of them and told them that I had started ColdFusion, and he said, "I wouldn't feel comfortable with that, because they could pull their support for it at any time"...and said a few other disparaging things about ColdFusion...so I see why you say it is somewhat of an underdog. But I didn't care. I wanted to do it, even if I only got to for a little while.
So, I was with that job for a little over a year, and then they phased my job out. But after that, I had a few other ColdFusion jobs as well, and now, I am still also in a ColdFusion jobs, so it has been a part of my life for a pretty long time, and I hope it will continue for even longer.
Anyway, sorry this was so long. haha. Now you see why I am so long-winded...it's that law school training. Anyway. @Ben...maybe some day, you will be a hopeful romantic instead of a hopeless romantic, when you meet the one. :-P I'm sure some day you will.
@Anna, holy cow! Longest comment, ever.
@Glen...haha, I know. I never realize how long these things get until after I post. :-P
I am 3 months into learning CF. Before I got moved into development my experience with it as tech support was emailing customers error logs to show them why a site wasn't loading or correcting their cfmail tags so I was negatively biased about the language. Now I have a new-found respect for it, it really is versatile and powerful if written correctly (unfortunately there's a lot of legacy code that's breaking around here). I started in PHP, I'll always be biased toward it, but CF has found a soft spot in my heart, even if it never becomes the language that fits me perfectly.
Thanks for the post, Ben! I love reading this blog, as an amateur I've added it to my rss reader so that I can apply new things to my job.
I got my start with ColdFusion through a rude upbringing a few years back, working off of code that went through several developers over a period of 10 years. The site itself both front and backend was the equivalent of a landfill. My job was to revise, resolve, and streamline everything and anything with the company's website. Through this experience I developed a love / hate relationship with CF.
Here I am years later, employed in another position which just so happens to utilize CF. I'll take this as a sign with my career path to stick with ColdFusion and grow with it.
Lol aw yes I think we all have used HtmlGoodies before. I started my career as a web developer back in 2007. I hear allot of people whom took computer programming classes say they hated it because it got to complex for them. They should have given it a try! What people fail to realize is the more you study and code the easier it gets and the more fun it gets.
Okay, I'll post. M Grigsby's + Anna's posts made me do it.
My first semester in college was in CompSci. I had to take some higher level (to me) math courses.
I wasn't doing so well so I switched to Journalism (my first jobs were in radio/tv production). My 5th semester, I transferred to KU and, again, tried my hand at CompSci.
In my C++ course, I barely scraped by. Not sure why. Maybe just undisciplined. Easily frustrated. I don't know. So, again, I switched back to Journalism which is what my degree is in.
At KU, I helped layout a website where students could search for apartments. It was written in CF (circa 1999).
FFwd. I had a job where I used my computer skills in maintaining Win98SE clients + NT server. Quit that job and, long story short, ended up joining the Air Force.
Before I shipped to San Antonio, I took the EDPT - Electronic Data Processing Test. Basically, it's a logic test. Seventy-one was passing. I got a 75. Most people got below 80. The two others that were testing along side me that day scored a 50.
So, I was a 3C0x2 (the "X" is the skill level). Computer programmer.
Which led me to the job I have now -- using CF. Been here two years.
But we're moving away from CF. CF has a bad rap due to its past and not-bright future. Sadly, my coworker wants to use Flex (See: Adobe Edge). Gag me with a spoon.
Anyway, I <3 CF because it's not outrageously picky. I love coming up with solutions, but despise fighting with a programming language.
Anna, Oracle procedures/functions appear to be quite picky so right now I'm not loving them. But, maybe I thought this about CF at first too.
Ben, you appear to be a lot like me in that we highly enjoy programming, but we're not necessarily programmers. By that, I mean we can converse with others and have relationships with the opposite sex. And don't smell of B.O. ;-)
<soapbox> The person who wrote this code was a programmer. It shows. He wrote bits of code that work, but, on the whole, it's not quite the right-est solution. A fair amount of redundant coding going on (fortunately we do have CFC's). I guess my point is that we must take in to account the big picture forrest along with the trees. He took it tree-by-tree. I guess we're all guilty of that, though, since I've noticed that if I rewrite code, it works considerably better than the 1st draft. </soapbox>
@Randall, I'm glad my post made you post a comment. :-D I am enjoying Oracle for now, but I have used it before. In a previous asp post, my job mainly was to write sql code that was to be dropped into an asp code page that was already written, so I wrote little code at that job beyond the sql for Oracle (I believe it is called pl/sql). I have previous experince w/ db2, sql server, and mySQL, to name the databases I have had experience with. To me, it has mainly been mostly the same...database experience. I am no database genius, but it has always been something I do to get by in whatever programming and/or coding job and/or web development job I do.
On that subject, I have a soapbox item to add - some people just flat out do not recognize web developers as "true programmers". I once told someone I was a programmer. He responded with, "what kind, what language do you use." So I had to specify that I was a "web developer". His response was, "oh, you design web pages?". No...actually, I have very little artistic and/or design ability at all. I try. But I am limited. Logic is definitely more my strong point, and I am much more left-brained than that.
To address your discussion about what makes a programmer, I am not sure if you would classify me as a programmer. Maybe. I do have some of the classic signs, symptoms and looks of a programmer. I sit in an office all day, so I have unfortunately come to look like someone who sits at an office all day. I am rather mousy looking, w/ brown hair, and I wear glasses. I have tons of trouble with the opposite sex, mainly in terms of long-term relationships. I can get a first date every now and then, but beyond that, I am not necessarily good at dates that go past the first. Maybe it has to do with my communication -- I do speak as a programmer, and sometimes talk in code to fellow programmers. I have actually dreamed "in code" before...it was C++ was my first dream "in code", but I have dreamed in ColdFusion before as well, too.
I get what you're saying about picky languages. That was part of my troubles w/ C and C++. Quite frankly, I had trouble at first grasping the concept of the bit-wise operator. We were giving that exercise in the lab, and I spent hours trying to figure it out before a classmate came in there and flipped the "aha" switch for me, allowing me to see how it worked, and showing me how it worked.
@Michael Grigsby about the htmlgoodies thing...ahh, yes, I have used them, but my main 'education' about html coding when I was first starting to program was lissa explains...http://www.lissaexplains.com. Even though it is a site that is supposedly 'for kids', I felt the simplistic way it was laid out was a really good way to learn html, and when I taught a class as an instructor, it is one I gave them as a reference when they were learning html.
@Ben, speaking of QBasic, did you ever play gorilla.bat? If so, kinda deja vu to see Angry Birds nowadays, I'll bet.
Gorrila.BAS (not a batch file) is more like Scorched Earth (turn-based artillery game, according to Wiki). The pigs don't chuck bananas back at you at varying angles and velocities. <pushes up taped up glasses and snorts>
History repeats itself! This is very true when it comes to software trends.
Great Ben !
I really like this post, its inspiration for me in CF fields.