Live data from Hacker News

Learn the Command Line

codecademy.com

71–80 of 110 posts

Re: Learn the Command Line

#71

Not a fan of CodeCademy. Other than the obvious (look who's backing them) though unacknowledged objective of flooding the market with low-quality devs to suppress wages, I've seen too many complaints from users to the effect of "I completed all of the exercises, but I feel like I haven't really learned anything." Too much hand-holding. A good book, a comprehensive tutorial, or even just reading the documentation stil…

> Other than the obvious (look who's backing them)

O'Reilly and a bunch of VC firms? That's all I could find on their website.

Re: Learn the Command Line

#72
post #16

What do people think about wrapping a Natural Language Processing interface around the command line (for educational purposes)? For example: "Show me all of my files, including my hidden ones" --> "ls -a". Good idea or not?

> What do people think about wrapping a Natural Language Processing interface around the command line (for educational purposes)?

Fragile, verbose, and actively hostile to learning why anyone would actually use a command line shell to begin with. For example, how would your syntax support redirection?

Bourne shell syntax is hairy enough as it is. The quoting rules are rebarbative and dealing with whitespace can drive you to madness in some circumstances. Adding another thick layer of syntactic sugar onto that is only going to end in tears.

Re: Learn the Command Line

#73

Not a fan of CodeCademy. Other than the obvious (look who's backing them) though unacknowledged objective of flooding the market with low-quality devs to suppress wages, I've seen too many complaints from users to the effect of "I completed all of the exercises, but I feel like I haven't really learned anything." Too much hand-holding. A good book, a comprehensive tutorial, or even just reading the documentation stil…

This is awfully cynical. I really don't see a problem with teaching people how to code, even if they don't become masters on their first try.

Re: Learn the Command Line

#74
post #41

Lately I've been butting heads with some seriously anti-command line people. I'm not sure if this is a growing sentiment, or I'm just advocating CLI usage more as time goes on. Anyway, glad to see this. I'll be sure to recommend it to whomever I'm preaching.

I use the shell every day, and I have mixed feelings.

1. The core concepts are beautiful.

Pipes are elegant. Simple programs that read and write text are one of the most enduring abstractions we've come up with.

I've used a single, surprisingly readable command that:

- dumps a database with mysqldump - zips it - sends it over to another server - unzips it - loads it into mysql

...in a single streaming operation, without creating any files! Making a lot of disparate programs, written decades apart, work together so seamlessly is simply impossible any other way. The shell is powerful.

2. The implementation is unnecessarily complex and fragmented

The standard commands all have cryptic names like `ls`, `cat`, and so on. They're second nature to us, but we've made the barrier unnecessarily high for new people who are just learning. Man pages suck (bro pages are much nicer). There are a lot of shells (bash, sh, zsh, etc). They're similar but subtly different. Standard commands like `ps` are incompatible between OSX and Linux, or even different flavors of Linux. Simple operations often require cryptic incantations. I type `tar -xzvf` at least once a week. The original Unix ideal is minimalist and beautiful, but the rest of the experience feels like it was crafted by neckbeards without regard for usability or learn-ability.

3. Shell scripts are terrible

A fresh, out of the box Ubuntu installation contains (very roughly) 100k lines of shell script, probably more.

For writing actual programs, `bash` is one of the worst programming languages that exist.

It makes languages like Perl or PHP look sane and principled.

Every time I use a solidly engineered system (say `buck` for building a large Java project) next to an equivalent shell-script-based system (say autogen + configure + make for a typical C++ project), I'm blown away at how much faster, cleaner, and more robust our software could be, and I feel sad that we've built so much on top of Rube Goldberg shell script contraptions.

---

I think there's room for a ground-up Unix, true to original principles. I would love to make a minimalist Linux distro that boots without executing a single line of shell script. Configuration would be via a small set of JSON files, not some Turing-complete hairball language. It would still have a shell, but it would be a minimal, sane shell. You'd be able to type `help` for a complete and concise listing of available commands, each with a one-line example.

Re: Learn the Command Line

#75
post #53
post #41

Lately I've been butting heads with some seriously anti-command line people. I'm not sure if this is a growing sentiment, or I'm just advocating CLI usage more as time goes on. Anyway, glad to see this. I'll be sure to recommend it to whomever I'm preaching.

I'm actually shocked to see such a massive number of coders on HN (a skill that still somewhat eludes me) can't use the command line, which I consider a Step #0 type prerequisite. It just hadn't even occurred to me that this might be a possibility. I'm not even sure how folks get started in the hobby/skill without the CLI background. I'd be interested in hearing more about the skills progression of these folks, and h…

I started programming in PHP doing web development. I started on Windows ME/XP and primarily used FTP to a free PHP host. After a while I learned to setup PHP/Apache/MySQL on my desktop and continue withing just an editor. Never once really touched the Window cmd.exe. After playing with PHP for a long time I started learning about different frameworks. The one I picked up and used the CodeIgniter. The first time I really heard about using a CLI was when I was reading about frameworks and came across Zend. It was annoying to me that I needed to use some "weird" command line to generate files. Why couldn't I just make them in my editor?

It wasn't until I installed linux that I really started to play with any CLI. I honestly don't remember what got me into linux at the moment. I do remember one of the first things I did was learn to setup the system using a tutorial on howtoforge.com. I went through those tutorial many of times setting up my computer.

I was an avid gamer at the time, so I also had my desktop setup to dual boot Windows. After a while I got tired of switching between the two so I ended up taking an old Dell Optiplex 110 installing CentOS on it and trying to get Samba to work so I could mount my web directories on my Windows machine and still edit them, while having Apache serve them.

I did that for a while, then got a job and bought hosting with shell access.

Re: Learn the Command Line

#76

Not a fan of CodeCademy. Other than the obvious (look who's backing them) though unacknowledged objective of flooding the market with low-quality devs to suppress wages, I've seen too many complaints from users to the effect of "I completed all of the exercises, but I feel like I haven't really learned anything." Too much hand-holding. A good book, a comprehensive tutorial, or even just reading the documentation stil…

If a self proclaimed 'engineer' provides the same value as someone who leveled up on Code Academy, then they rightly should be replaced.

Re: Learn the Command Line

#77

Not a fan of CodeCademy. Other than the obvious (look who's backing them) though unacknowledged objective of flooding the market with low-quality devs to suppress wages, I've seen too many complaints from users to the effect of "I completed all of the exercises, but I feel like I haven't really learned anything." Too much hand-holding. A good book, a comprehensive tutorial, or even just reading the documentation stil…

Sure, you're not going to be a professional software engineer working on complex problems and scaling servers at Google, but you can learn a little something from their service. For beginners who have never programmed I think its great because you can program right in the browser; no need to install compilers/interpreters, text editors/IDEs, DBMSs or servers. These things can take well over an hour to install, configure, and learn how to navigate through. All of this getting thrown at a beginners face would do nothing but discourage them.

And even if you're a well experienced programmer, you can use Codecademy to get your feet wet in a new language. I don't see the harm in this.

Re: Learn the Command Line

#78
post #68

Not a fan of CodeCademy. Other than the obvious (look who's backing them) though unacknowledged objective of flooding the market with low-quality devs to suppress wages, I've seen too many complaints from users to the effect of "I completed all of the exercises, but I feel like I haven't really learned anything." Too much hand-holding. A good book, a comprehensive tutorial, or even just reading the documentation stil…

tl;dr "omg I'm scared of new people learning how to program because it threatens my job. I learned the hard way looking through old textbooks and new entrants shouldn't get to use a nice new service to learn because I didn't have that available to me when I started!"

Programming has always been accessible to new people. The only way it couldn't be is if programmers had organized themselves into some sort of union and then sought and received for it a legal monopoly on their profession as enjoyed by the American Dental Association.

And yes, I am afraid of CodeCademy, bootcamps, H-1Bs visas, and any other scheme blessed by industry, the media, and government that seems tailor-made for reducing my wages and my prestige. Remember that it wasn't long ago that a massive wage suppression cartel in SV was exposed, and its architects were punished with mere wrist-slaps. Quite frankly, you're foolish if you're not afraid.

Further, who are these "new people" you speak of anyway? Most of the "old people" I've met in this industry are there because they love programming, with the high salary being something of a perk. That's why so many of them contribute to open source projects on the side. This new breed of bootcamp and CodeCademy graduates are thoroughly mercenary in character. One of CodeCademy's own success stories is from a lawyer who got into "coding" because the job market for lawyers was so poor - why should I contribute to my own marginalization by supporting people like him?

Re: Learn the Command Line

#79
post #69
post #14

I finished it last night and wrote a "review" in a mailing list, so I'm just gonna copy that "review" I sent last night if anyone's trying to figure out whether or not they should take this course: I just finished it. It took me less than half an hour. It was OK until I finished the 75% of the course. The last 25% were pretty repetitive: use nano to edit your bash config (they used .bash_profile as a config file), ty…

Just putting this out there - as a teacher, I have seen the importance of repetition. My students would benefit from the repetition at the end of this. Whether they know they'd benefit or not. Like scales on a piano.

I believe in good repetition. But what is good repetition? Nano on a dot file 5 times? For the command line it should involve commands that will save people time. Teach them: 1. how to use find and grep, and other commonly used commands. 2. introducing them to vi and explaining why people use it (instead of nano) 3. user configuration with a brief on the FS structure (what is in etc, usr, opt, etc...) 4. lastly, but most importantly, how powerful and dangerous the unix command line is. Why you should learn shell scripting. And getting started with shell scripting.

To me, that list would go from beginner to intermediate++

Re: Learn the Command Line

#80

Great, now the missing link is SQL. Why are none of the online code schools teaching such an essential skill required for web development?

Is knowing SQL still important for web development? I haven't used it in 5 years and feel I can land jobs regardless.
Post reply on HN