Building a computer system is like building a Rube Goldberg machine: you have an expected outcome and you've got a collection of things that someone else made but how you put those together is completely up to you. Sure, there's constraints like gravity and friction, but the more you understand them the more you can use them to your advantage.
There's a great video by Clifford Stoll where he says:
The first time you do something, it's science. The second time, it's engineering. A third time, it's just being a technician.
That simple outlook completely resonates with me because I'm a software engineer. I have no delusions that I'm a computer scientist inventing new things, I'm using tools made by other people - and I love it!
As an engineer, I also like to take things apart to learn how things work. If I don't know how something works then it is effectively magic as far as I'm concerned and I really don't want to use it.
On the extreme end of this, for some weird reason I know a lot about PDFs. I actually even have a printed copy of the 1.6 PDF spec that I took on vacation to read. You know, for fun. What's weirdest of all is that I have almost no need of this knowledge in my day job, I just find the PDF language to be very well thought out. This has also lead me to be very knowledgeable in the PDF libraries iText and iTextSharp which, once again, I don't actually use in my day job.
But my passion is for languages and frameworks that allow me to express my ideas in a consistent manner. I grew up with BASIC and have learned probably a dozen variants of it over the years so I have a special place in my heart for VB.Net although most of my .Net work has been in C# lately. The languages are so close these days that I sometimes don't even notice which one I'm in!
Lately, however, PHP has been my language of choice. I don't think it is the best language out there and in fact I agree with many people's sentiments that it is inconsistent, confusing and non-discoverable but man can you do a lot with it!
I also really enjoy
And please hear me out on this last one. I love WordPress. I've built dozens of custom content management solutions over the years and implemented many open source as well as very, very expensive proprietary ones and WordPress combines all of the best features of these. True, you generally have to write more code to customize WordPress than other CMSs out there, but I think that's a good thing! Everyone has their own specific content model and trying to create an interface that works for everybody just leads to impossible to use clutter.
Q&A for professional and enthusiast programmers
Q&A for pro webmasters
Q&A for computer enthusiasts and power users
Q&A for professional programmers interested in conceptual questions about software development
Q&A for system and network administrators
Q&A for Drupal developers and administrators
Q&A for WordPress developers and administrators
Q&A for professional, enthusiast and amateur photographers
Q&A for power users of web applications
Q&A for users of Linux, FreeBSD and other Un*x-like operating systems.
Q&A for database professionals who wish to improve their database skills and learn from others in the community
Q&A for linguists, etymologists, and serious English language enthusiasts
Q&A for meta-discussion of the Stack Exchange family of Q&A websites
Q&A for Graphic Design professionals, students, and enthusiasts
Q&A for Ubuntu users and developers
Q&A for user experience researchers and experts
Q&A for professional and amateur chefs
Q&A for members of the workforce navigating the professional setting
Q&A for science fiction and fantasy enthusiasts
Q&A for software quality control experts, automation engineers, and software testers
Q&A for programming puzzle enthusiasts and code golfers
Q&A for Bitcoin crypto-currency enthusiasts
Stack Exchange Network staging zone, where users come together to build new Q&A sites