Warning: Do not use an IDE
c.learncodethehardway.org
c.learncodethehardway.org
A programming language is not an instrument. Its a language that lies somewhere between logic, math, and actual spoken language.
When I was learning guitar, it wasn't filled with analogies like "A guitar is like a broom, you've got to learn to sweep across the strings consistently". They just said, learning guitar is hard, practice and you will get better.
Don't dumb it down for people learning, just say straight out. "Using an IDE will hide the low level things like compilation that you will need to know to be a good programmer".
1: http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm
The reason people use analogies for programming is it's not as common in the general population so we need something they can latch onto that they do no. Music and art are deeply embedded in everyone's knowledge, so they're easy analogies. Math isn't as deeply embedded so it's not as useful unless the person has a background in math.
Even then, I've taught people with solid math or engineering backgrounds that still struggled with programming concepts. Programming is just weird and hard to explain.
Music and programming are creative tasks that require you to think of new ways to solve problems or express yourself. Math is a system of calculation.
Given the quality of most guitar education though, I wouldn't take their lack of using analogy as any kind of bonus. Guitarists are notorious for bullshit education that's basically, "No look at me do it. I can't explain how I do it. Just like this. No wrong!" If they were better at explaining and bridging concepts using existing concepts people have then they might be better at teaching it.
I think the opposite is true, IDEs help you find out what is really going on, by showing you (depending on the language) which module is used where and giving you the option to directly navigate to that source. That in turn confronts the beginner with the code and conventions of other (more experienced) coders. So yeah, IDEs rock. Also debugging...
IDE's are great if you use them. Editors are, too. But the point is that an over-reliance on IDE's will degrade your skills, generally, and command/control over your project, precisely because it does too much work for you, and your understanding of the subject thus atrophies. If I had a Btc for every new-school "IDE's are the awesome, can't live without them" superstar programmer who nonetheless couldn't navigate his way around the build system, or even directory hierarchy for their very-valuable software system, I wouldn't have to write software for a living. Probably.
It is sage advice, this "don't become addicted to your IDE" statement, because IDE's are also a walled garden, folks. There are reasons the "Developers^3"-mindset was so ironic way back then; if, as a platform vendor, you capture developer mindsets then you safeguard your platform from being undermined by your competition: other developers. Never forget that its turtles, all the way down, folks .. and your average modern IDE is a big, hungry, fat one.
I'm not the biggest Zed fan out there because I find him to be overly defensive at times, but this is a small section of a larger work aimed at teaching people how to program in a certain language. I don't know about the rest of you, but when I learn a new language, I open a basic text editor and a command prompt and get to it, because it forces me to learn the style and convention of the language. Once I've got that down, I'll use whatever the hell makes me the most useful.
Context matters.
Okay!
Hopefully Zed will start working again on the C book, now that he finalized his Python and Ruby books.
USE AN IDE. It's there to take care of the boilerplate crap for you. It's there to correct your typos. It's there to give you instant lookup of API calls. It's there to flag your syntax errors so you don't have to do the annoying "code, compile, placate the compiler, repeat" cycle. Using an IDE will NOT make you stupid. People who advocate this view are the same kind of people who insist on a manual transmission as an indicator of a good driver. IT'S NOT.
This advice given about not using IDEs is on a site teaching programming in C to complete beginners. If you had spend just a few minutes on the site, you would have realized that there is no boilerplate crap to learn in the lessons he teaches and that it makes a lot of sense at that level to forego using an IDE and focusing on learning the language using a simple editor, rather than spending a lot of time learning to use a specialized tool.
And I started to blame myself for this. So this piece really speaks to me, and confirms me that it might not be my fault here.
But, tools have a major impact on people's ability to work. If you aren't used to using a tool it can be incredibly difficult to get started and feel capable. Telling someone that they're at fault when they're basically forced to use a foreign tool to do their job is disingenuous.
I mean, if you went to work somewhere that used Vim only how would you feel if everyone said you sucked because you had a hard time using Vim? That's basically what you did here.
I tell people they shouldn't be dependent on IDEs to write software because that gives them choice and control over their career. That doesn't mean I'm saying people should never ever use and IDE. In your situation I would have studied everything that microsoft puts out and learn to own VisualStudio. If I have to use a tool, I learn to hack the hell out of it and own it so that I'm not screwed when I need to use it.
I suggest you bite the bullet and put in the time to get good at it. I would start here:
http://www.microsoftvirtualacademy.com/product-training/visu...
I think that's a Microsoft site. There's plenty of other courses online that will teach you, and they should be a tax write-off since that's professional development.
The title of the submission is "Do not use IDEs". Seems pretty binary to me.
But the page title of the submission it actually links to is "Exercise 0: The Setup:"
I think whoever posted this on HN was purposely taking things out of context for controversial lulz.
For example, I am a researcher and I use programming in my research projects. I cannot live without using Visual Studio for C#, RStudio for R, SAS Windows for SAS. I am not will never become a professional programmer. I am totally OK with it, because programming is not my profession and I have countless other stuff to learn. I know there are a lot people like me.
This is not a good advice for beginners. At least not for all beginners.
The goal of software should be to make things simpler.