I guess i'd put it this way:
When you're constructing a building, what is more important: the blueprint, or the tools you use to do the actual construction? One way or the other, if you don't know how to draw a blueprint you aren't getting anything built, and without tools or knowing how to use them you aren't getting anything built. In my opinion if you only learn a specific, specialized brand of nailgun (XCode) you will be more limited than if you start with a hammer and work your way up.
-Lee
Real world analogies never really translate to computers very well IME. We've all heard the one with Windows PCs and cars and while it's funny it isn't really very useful.
I've never been to architect school, but I doubt they teach you to use a hammer and I'm certain they don't teach you about blueprints at the same time. And in this case you _can_ build a house with just the blueprint (C code) and asking a builder to make it for you (XCode).
My point is not that the terminal/editor combination isn't something worth learning it's just that IDEs like XCode give you the opportunity to learn one thing at a time (C programming not hammers
😛). Once you're getting the hang of C or if you want to work on a platform without an IDE then it might be worth learning terminal compilation now that you're at a stage that you're comfortable with programming concepts. The cross-platform argument only goes so far, since all the platforms mentioned above have competent IDEs available for them that all do a lot of the hard work for you and all work in very similar fashion. They're also designed to improve your productivity compared to terminal/editor coding and in my experience this certainly helps.
Anyway, you're correct when you say that this argument can't be won - I just figured I'd present another point of view.
Patillac said:
I'm curious as to what you guys saw yourself doing when you were learning the basics and how it has evolved.
I was a hobbyist for years (like every pro, I guess). I started with Atari 800XL BASIC believe it or not. I only came to C comparatively late as a hobbyist (I work mostly in C++ these days). While I knew the basics of terminal compilation etc. (mostly from Java programming I'd had to do) I cut my teeth using CodeWarrior IIRC.
I never needed to use a command line and text editor until I started my current job which is often working with mobile devices (IDE? Sometimes mobile platforms don't even have a proper compiler...). I found learning terminal compilation tedious enough then, but could concentrate on this single aspect of the process since I knew my coding was sound. However, even in this job, 90% of the time I work in Visual Studio or XCode (thank you iPhone) and only when I have the program working there do I need to recompile for other platforms. I hadn't used XCode since it was called ProjectBuilder (and not much at that) before the iPhone turned up and I found it very easy to pick up after using Visual Studio.
Programming is a great hobby and I know if I ever changed career I'd still be hacking away in my spare time in some shape or form. Good luck with the learning
🙂