To IDE or not to IDE

A while back I had the opportunity to demonstrate my limited coding skills under interview conditions.

Part of that experience was a “pair programming” exercise in an online editor.
Pair Programming meaning that I was coding and my loving tech interviewers were cheering me on from the sidelines. Seriously, they were very supportive bless them.

I did not know the online editor and so did not know how to use:

  • code assist
  • code completion
  • framework plugins
  • whatever.

I loved it.

Until I hated it even more.

After the interview I had the opportunity to give feedback about the exercise.
I was so embarrassed with my coding mistakes that we briefly discussed what it is like coding without all the bells and whistles of an IDE.

I had never realised how much code an IDE can automatically write for me with the features like code assistance, code completion, plugins, etc. compared to how much code I write without the assistance.
During the exercise without these features I had experienced moments of “ground… you may now swallow me whole and without hesitation, no need to contact anyone. Yes, now is indeed a good time!

In an act of guilt, shame and in support of self Continuous Improvement, the next day I started to code in a plain text editor.

Less than an hour later I was back in my IDE.

Sad story, but true.

What about the interview?” , you may ask… “Did you get the job?
to which I would reply:
I want to do more interviews. The interview was an educational experience in itself.

In the Java community there are 2 or 3 big IDEs, as far as I know

  • Netbeans - I used it about 15 years ago. Not sure of its popularity now
  • Eclipse - I used this until about 6 years ago
  • IntelliJ - my preferred IDE now

Each is a fully featured, massive developer-eco-system.

Do you use an IDE?
Do you know how much code your IDE writes for you?

3 Likes

Corresponding tweet for this thread:

Share link for this tweet.

I tried an IDE (think it was RubyMine: The Ruby on Rails IDE by JetBrains) when I first started in Ruby, but most well-known users (like DHH) were using text editors like (TextMate) and I often heard IDE’s were only really needed for languages like Java, so I just stuck with text editors as they did pretty much everything I wanted anyone. However some editors are becoming more and more like IDEs now, so that bridge is closing and I think that suits me better… as I can just use the features I want to :smiley:

3 Likes

I primarily use IntelliJ for java and other related JVM work, CLion for C++ and Rust. A good IDE is in my opinion essential to a good programmer as a set of specialized tools are to a carpenter. Sure you can do everything with a hammer, but your work will be significantly higher quality, faster, and better all around with the right tools.

For pair programming IntelliJ/CLion (and other such similar IDE’s) have the CodeWithMe plugin (put out by jetbrains, it might even be default installed on the latest versions I think?) which is an oddly great pair programming tool, basically syncs up two (or more? I’ve only tested with 2) IDE’s, each person can have different permissions so one person can be read-only for example, that way they can give input on what’s being programmed. It’s not a screen viewer, it is just synched up IDE’s, the other people can still look around and view whatever code they want. It has audio and video chat as well but I’ve not tested those (been using discord… >.>).

3 Likes

I don’t think you should be ashamed.

Java is a verbosive language and that was well-understood by the time I left it (2009), which is 12 years ago. To help alleviate this, the community has risen up to make fantastic IDEs. That’s quite okay.

I one day woke up and I was like "I effing hate typing public static void doStuff(Integer x)! And gave up and used Eclipse for a few years.

Don’t be ashamed – really. As long as your work is bringing value then it’s OK to use anything and everything that makes you more productive. IDEs are indeed like good carpenter tools, as @OvermindDL1 observantly stated.

Do you see professional craftsmen deliberately skipping on amazing tools just to show themselves as masters or whatever? When a guy who comes at home to fix my water pipes reaches for their brief-case, am I mad at them for using a motorized screwdriver? Of course not!

So use your tools and take pride in you work.

As for interviews – yep, I can’t recommend doing more interviews enough! I’ve been very introverted, almost asocial, for the last 15 or so years, but when I started doing more interviews during the last 2-3 of them I found a world of interesting revelations.

But to avoid generic statements I’ll just say that it will maybe pay off for you to warn the interviewers that you are used to an IDE and that it might be sub-optimal to have you write code in a bare editor. I have warned one of my Rust interviewers that at the time I wasn’t using an IDE – not even using a language server in Emacs – and told them that I’ll switch between my editor and shell a lot. They were okay with it.


Hugely important point for interviews that CANNOT BE EMPHASIZED ENOUGH:

Manage expectations early.

3 Likes