Hacker News new | past | comments | ask | show | jobs | submit login

This was a real question FYI. I don't know what that means.

Googling "Making sure /usr/local/bin is in my $PATH" leads me here: https://stackoverflow.com/questions/19202007/making-sure-usr...

So I fire up the terminal and write echo $PATH and then go back to SO to see that it looks like it's all set up correctly. But why do I need to go to SO? Why do I need to fire up the terminal? It just feels too damn hard and too opaque.

I think defaults and documentation and onboarding matter. Not to mention a GUI :)




90% of your programming life is going to be spent iterating up and down a stack of "how do I...?", "what is...?" and "why does...?" type questions. If searching for a keyword and then reading the first hit is 'too damn hard and too opaque', that could be a sign that software development may not be your thing.


It's one of those basic things. Like, when someone says "Make sure you have salt in the kitchen" they say just that, not "Open the first cupboard in your kitchen. See if there is a blue tin with a little girl in a frock carrying an umbrella" and so on and so forth.

The "make sure X is in your $PATH" is its own thing. I sympathize but there is a balance between docs for the expert and docs for the novice. This is closer to the former.


Also I'm fairly certain that an explanation of what $PATH is on unixlike OSes and how to manage that is one of the first things one will see when reading any number of dev basics/getting started tutorials. I understand wanting to jump right into writing "real" projects but things like this are why I think spending a little time finding well-written tutorials and doing them makes a big difference when picking up a new language/library/framework/etc.


There are install shields and tutorials for this. He's right, most tooling sucks and require arcane incantations. They do allow later flexibility though.

Steve Jobs if he was a programmer would slam today's tooling.


This is the most insane article and comments I've seen in a while.

It's programming. It's difficult, and there's a lot you need to know to be effective. Trying to just hide things like the command line is just pointless. You need to know it. Go learn it.


Learning a new language is hard, whether it's a spoken language or, in this case, the incantations on command line.

Your comment to which I'm replying now shows that you do have the ability to learn this new language. You've correctly and successfully used the term "SO" to refer to a popular resource on programming. You have successfully "fired up the terminal." You've even used the terminal to echo $PATH. You're making great progress! :-)

The particular idea of installing node.js by default in web browsers seems to me like installing toasters on sofas. That would make it easier to make toast without going to the kitchen, but is not something that most people would want.

> why do I need to ______?

This is the current state of computers and programming. Computers are just concentrated piles of logic gates and they don't actually know what they are doing.


> You've correctly and successfully used the term "SO" to refer to a popular resource on programming. You have successfully "fired up the terminal." You've even used the terminal to echo $PATH. You're making great progress

He's been a user of HN since 2010...

It seems he likes the idea of programming more than the act of it. It's similar to one being enrapt with the idea of being an accountant but in reality, just wanting TurboTax to do everything and not learning anything. But i get to play pretend that I'm an accountant.

And in terms of (free) knowledge availability on the internet for any one profession, there is nothing that comes anywhere close to programming.


Why do I need to go to Stack Overflow? Being sympathetic I would say that because the Node JS Installer makes the assumption that you know what the PATH environment variable is and you know how directories work.

Why do I need to fire up the terminal? Your OS doesn't do things via GUI like you do, so you need to validate that what it needs is available in the manner it will use.

Too damn hard and too opaque.? How did you learn that Node js was even a thing? You weren't born with the knowledge and everything has a learning curve to it, very few things are truly easy to do starting at the very bottom.

I agree that things need documentation and onboarding. I think we can view the Node js docs similar to a shop manual at a auto repair shop - it will expect you to know what tools are what and how to do certain things.


Looking up stackoverflow is harder than learning a programming language?


Windows has a perfectly good GUI to edit your PATH variable if you need one. Most installers also add their tools to that same PATH, so on Windows this is all pretty easy to accomplish. The problem is, if you don't know what environment variables are, the GUI won't be of any use to you.

You shouldn't need one though. Environment variables are one of the core basics of any program, and you'll need to learn about them eventually. The same thing is true if you can't deal with the terminal; there's a few "magic" commands to learn but most of the terminal stuff is just "how does this computer thing even work".

Most programming tools and languages, as well as their documentation, assume you know how to manage your computer when you start programming them, as well as some basic knowledge of how an operating system works. These tools and their getting started guides are written for people who know the basics of their computer and programming, and want to try out a new language like JS. If they're too technical for you, you're not the target audience. You'd get much more out of a book explaining you the basics step by step.

The terminal is everything but opaque; you tell the computer exactly what you want rather than clicking the "just make it work" button. You're in control instead of letting some tool assume what's best for you. In my experience, the "one button to fix all" systems will work for a while but once they break (and they will) they're basically unrepairable without deep knowledge of the tooling and its configuration as well as the defaults the installer chose for you and why they're now messing up.

A problem with Javascript and Python development is that the setup is very complex and that guides become outdated (especially for web dev). There's loads of edge cases to deal with so there's loads of configurations and options most tooling supports. The magic install button would lead many to ruin their operating system configuration because they've already installed another tool that might also have had a magic install button. These tools don't operate in a vacuum, they influence each other.

If you just want to program code, grab a great big IDE like MS Visual Studio on Windows (the full one, not Code) or XCode on Mac (no experience there, but it's trivial to install at least). The experience of getting started programming in C# is very easy, just select the types of program you want to be able to make (or "all" if you don't care) during setup and your tool is set up. No fiddling with the command line, just a shortcut on your desktop. You won't be making any websites in them from the start, but they'll provide you with an environment that Just Works for writing your first program, moet likely a console window that says "hello world".

If you want to get started in web dev, you don't need node or any terminal work, just a good text editor to write your own HTML, CSS and JS files in. Sure, node is what people use in production, but it's only complicating things if you're just getting started. Guides from ten years ago on how to write HTML and Javascript are still perfectly functional if you're just starting out.

If that's still to much to grasp, there's kits out there for Raspberry Pis that come prepackaged with tutorials and with exercise books for programming in scratch and Python. Your only barrier to entry there is the money to buy the kit. You'll still have to learn everything and work through stackoverflow or technical documentation all the time, but you won't need to bother with any terminals at least.

Complaining that programming is too hard because there's no fancy GUI for every tool is like me complaining that finances are too hard because I can't walk into a bank and start making money without reading all kinds of boring books about finances. There's easy ways to get started if you know where to look, but in the end you'll always need some knowledge about the field you're entering to get started without paying someone to teach you directly.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: