
Warning: Do not use an IDE - pmoriarty
http://c.learncodethehardway.org/book/ex0.html#warning-do-not-use-an-ide
======
stormcrowsx
I really hate that we use so many analogies when teaching programming.

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".

~~~
Delmania
I actually think it depends on the analogy. For some reason, people love to
compare programming to art and music. The article Dabblers and Blowhards[1] is
a great response to these types of claims. A better analogy for programming is
that it's like math. Once you understand how the operations work, you
appreciate the value of a calculator.

1:
[http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm](http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm)

~~~
zedshaw
Actually, that article is full of errors regarding painting, art history, and
a lot of his criticisms of PG's take on art history are just plain wrong.
Which is typical of painters. Many don't even know the chemical makeup of
their pigments or which ones are dangerous and why. Many don't know about how
projection was used to do a huge amount of art long before there were cameras.

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.

~~~
Delmania
That still doesn't change the fact that art and music are poor analogies. I
struggle with the best way to describe this, but at the end of the day,
perhaps the best analogy I can give is that the purpose of art and music is to
share the artist's thoughts and feelings with his audience. It's completely
subjective. Programming, on the other hand, is more utilitarian. No one cares
how beautiful the underlying code is, user care only if the damn thing works
the way it's expected. Learning to code well is important for the inevitable
maintenance, but at the end of the day, if the program doesn't work, few
people will appreciate it.

------
Grexception
Protip: If 80% of your agument is an analogy, it's probably not a very good
argument.

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...

~~~
zedshaw
Protip: If 100% of your argument is just posturing with no evidence then it's
not a good argument.

~~~
AznHisoka
Protip: Only self improvement gurus and bros/hipsters are allowed to give
protips.

~~~
oso2k
Protip: It's not a protip if it's advice about making protips.

------
MisterBastahrd
What the hell, really?

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.

------
FroshKiller
The site selling a for-pay online video course in coding according to a
certain IDE-free style unsurprisingly warns me that using an IDE is bad. Okay.

~~~
zedshaw
A confused illogical comment criticizing me charging for something I made
(that's free BTW) from a guy on a website run by a company that makes money
making companies that charge for things (usually).

Okay!

~~~
emergentcypher
You aren't doing yourself any favours by making these comments... you seem a
little too easily offended that some people disagree with your message.

~~~
graffic
We all have an opinion. I find his spot on.

------
CyberDildonics
Being an advocate of learning something without breaking it down into smaller
pieces shows an ignorance of learning in general. Everyone has a limit to
their mental capacity and the logical leaps they can figure out with
incomplete information. IDEs reduce the mental energy needed at any one time.
Every time someone makes something easier, there are always people who are
advocates against it and they always are on the losing side of history. Yes,
there are lots of kids using Unity and Javascript who don't understand memory,
or compilers yet. But they can learn and learn that one chunk at a time
instead of having to take on so much at once just to make any progress at all.

------
AlexeyBrin
In the context of learning to code in C, I think Zed Shaw is right. Using a
plain text editor will help you understand the language.

Hopefully Zed will start working again on the C book, now that he finalized
his Python and Ruby books.

------
kstenerud
This is some of the worst bullshit I've read in quite some time.

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.

~~~
aroberge
Real bullshit is spewed when someone make comments about something they don't
know anything about.

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.

~~~
kstenerud
Or just use an IDE so you can focus on the language rather than his idea of
the proper (command line) tooling. This would be ESPECIALLY helpful for
complete beginners. I've taught many people C, and it's always gone a LOT
smoother with an IDE.

------
joekinley
Thank you, I needed that. Since I got a new job recently, and switched from
PHP to C# .NET, and therefore have to use VisualStudio, I feel totally dumbed
down, as I have barely any idea what is happening most of the time.

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.

~~~
zedshaw
It's odd that people read my comment and assume I'm binary about IDEs. I'm a
pragmatist, and I say use the tool that works.

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...](http://www.microsoftvirtualacademy.com/product-
training/visual-studio-courses)

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.

~~~
cloakandswagger
>It's odd that people read my comment and assume I'm binary about IDEs

The title of the submission is "Do not use IDEs". Seems pretty binary to me.

~~~
wink
There might be a small difference between "Do not use IDEs. Ever" and "Do not
use IDEs. In this course."

------
ainiriand
A good advice for beginners, indeed. However in the day to day work, an IDE
saves you a lot of time.

~~~
zedshaw
I totally agree, but I tell people who use one at work to not use one at home.
It's about being able to adapt to changing market conditions too. If you
become dependent on IDEs then when new languages come out you have to wait for
someone to make an IDE for that language. If you can also code without one,
then you don't have to wait.

~~~
jballanc
I'd argue the same goes for languages, not just tools. At home I like to spend
most of my time with Lua, Scheme, and C, and only sometimes Ruby or Python.
The less the language does for you, the more you can focus on the concepts and
forms.

------
untog
Yawn. We are not all the same, use the tools that work for you, and let others
do the same.

------
mardiros
Warning: do not trust everything you read on the internet

------
xname
This is silly. Not every programmer is or will be a professional programmer.

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.

~~~
zedshaw
I just use vim for all of those.

~~~
xname
Tell me how to open sas7bdat data file with vim.

