Since I didn't get a chance to comment on yesterday's post on "The Hard Way" command line course, I want to mention today that Zed Shaw is also working on a very nice C course for experienced programmers. I've been looking unsuccessfully for an online C course like this one, that doesn't do things like explain what functions, primitives, etc. are. Starts out a little slow with compiling and setting up your development environment, but then reveals a very well-written introductory course on C programming for experienced programmers. As an experienced Python/Javascript/PHP programmer with an interest in C, I've been looking for an online course like this for a long time.
Zed: can we somehow compensate you for your works-in-progress? I've gotten a lot out of your C course. I can't wait until it's available in epub format.
Just tell me when you find errors so I can fix them, and then if you appreciate it buy a PDF/ePub when it becomes available. Actually selling something is way easier to explain to the tax man than a "donation".
Will do. And I just purchased your udemy C course. And WOW! I'm looking ahead in the pdf and you're going to cover a lot. Perhaps the same is reflected in the HTML version -- I 've not yet looked ahead.
Folks, if you're a Python, Ruby, Javascript, etc. programmer and you're interested in learning C, this is the book for you.
>> [C]an we somehow compensate you for your works-in-progress? I've gotten a lot out of your C course. I can't wait until it's available in epub format.
No idea what Zed would suggest, but there's an in-progress Udemy video course[1] of Zed's on C that you can already purchase.
Thanks for the suggestion -- I just purchased it. I'm not big one videos, but I'm getting so much out of the book I'm purchasing it in support of the book (and it looks like I'll receive a copy of the book whenever it's done along with the udemy purchase).
While I'm glad that you aren't dismissing Windows out of hand like some people, interleaving the Windows instructions with the POSIX instructions could get a bit confusing. It may be better to maintain separate builds of the book for POSIX and Windows.
I thought this looked like an interesting, possibly-unique feature, not a bug.
Including Windows up-front ensures that whoever picks up the book can make use of it immediately, no matter which computer they happen to be sitting in front of.
Also, as one who knows the Unix command line pretty well but knows next-to-nothing about Windows, it's good to get exposed to a similar-yet-different style of command line.
And if I ever need to use Windows again I plan to try this book first: By covering both in parallel, the book might turn out to be a pretty good guide to learning one in terms of the other.
It's easy enough to get a POSIX/Linux toolkit via Cygwin.
Though this does assume the user is allowed/enabled to install software.
Barring that, bootable CD / USB distros are also highly tenable. The default Ubuntu installation disk includes this, though there are many other options.
...Except Zed's whole point with this is that you don't have to use the fancy Cygwin/POSIXy stuff or a Linux Live CD or whatever to do programming and the command line. POSIX environments are better for programming, but you don't need them, and a lot of the people who would benefit most from learning programming don't have Linux experience and wouldn't do it if they had to do something fancy to get a UNIX-y environment.
For me it's more a matter of cognitive simplicity.
I can use a POSIX environment anywhere. It's one less hurdle if that's the tool I'm using.
I've learned (and forgotten) numerous proprietary system languages. I prefer sticking with stuff that will be around. POSIX/Unix/Linux have demonstrated staying power.
It's been interesting to read your tweets about Windows. It's encouraging to see a fast learner get up to speed despite plenty of misgivings about the subject matter.
I think it will be less confusing to some if you mention Windows Vista here:
> If you don't have Windows 7, you should seriously consider upgrading. If you still insist on not upgrading then you can try installing it from the download center. You are on you're own though since I don't have Windows XP, but hopefully the PowerShell experience is the same.
Don't forget, this is a first draft. Since the best predictor of future behaviour is past behaviour, expect the rough edges to be sanded down over time.
I was aware that pushd and popd existed but never used it. I see how I can gain a lot of productivity from it, so I'll probably be using it from now on.