What IDE Do You Use?

Every few weeks or so I get asked some variation of the following question:

“What IDE do you use?”

It might be WebStorm, or it might be PhpStorm that I’m using in the particular video for which the question is asked, and I always make sure to answer the question. Maybe I should have a link to my setup or something, I don’t know.

I’ve had fellow devs scoff at my choice of IDE. I remember interviewing at a large org a year or so ago, and one of their senior devs asked me about my setup. When I mentioned PhpStorm he snorted in amusement. So, being the inquisitive type, I asked what he used.

The answer: emacs.

I’ve had enough of these experiences now that things like this no longer phase me. I mean, if anything it was refreshing to have my chosen IDE laughed at, rather than my primary language of choice, right?

But here’s the thing:

The IDE I use doesn’t matter.

Well, not that much.

I like the JetBrains range because they give me access to a bunch of benefits that I don’t get – without a lot of addons – with tools like Sublime Text, or Atom.

It’s really just personal preference. I’ve tried a whole bunch of IDEs and editors over the years, and the JetBrains range works best for me.

If I didn’t have access to PhpStorm or WebStorm, I could still write code. Vim is typically widely available, though I’m not by any stretch a keyboard ninja within it. At a stretch, any text editor will do, even emacs 😉 (I kid, I know it’s incredible in the right hands)

The question always reminds me of the one I used to ask when I spent a bunch of time making music.

I’d always be interested in what DAW (Digital Audio Workstation) my favourite artists were using. I had that glimmer of hope that if I too, used the same DAW as Sasha or Deadmau5 or {insert famous DJ name here :)} then I might sound as good.

Sadly, that was never the case for me.

Now, don’t get me wrong. I’m not for one second comparing the code I write to be in any way similar to the musical genius of the above.

What I knew deep down when creating music was that I could spend hours learning a tool like Ableton Live, or Logic (both DAWs btw), but that was 10% (or less) of the battle.

The best results when learning music – piano in my case – have been found by practicing piano. Sounds kinda obvious.

And it’s the same with code. You can know a bunch of ninja shortcuts in your favourite IDE, but the other 90% of the time you should be practicing your coding skills – which means writing, and reading a lot of code.

I’ve written before about how similar the processes between learning piano and learn to code have been for me. Both require commitment.

How committed you are has a significant impact on how good you become. What I’ve found is it’s very tempting when learning piano to browse “gear” websites and look at all these expensive keyboards, synths, and pianos and lust after them.

Having an expensive bit of kit isn’t going to make you better in any way. But spending money can make it feel like you’re progressing. Paying for music lessons would be a better investment, though seemingly the mind doesn’t always work towards your best interests.

With music in general it’s fairly easy to browse YouTube or Twitch and find someone rocking out on your instrument of choice and find yourself daydreaming about being that good. I guess it’s the same reason why top gaming streamers have so many viewers – we all wish we were that good at games. Well, I do.

However, if it were possible to Star Trek-style beam directly into their stream (or studio), and sit down at their gear / gaming setup, I’d still be the same player I am at home in front of my own setup. So goes the phrase: all the gear, no idea.

Whatever IDE or editor you use will have little to no impact on the code you write. They are productivity tools – they help you write code more efficiently. What works for me may not work for you, and vice-versa.

Throughout writing this I’ve been extremely conscious of coming across like I’m some coding rock star. I want to stress this is absolutely not the case. If I’m honest I believe the whole “rock star” status does more harm to our industry than good.

The main reason I wanted to write about this is simply this: If the only question you have after watching one of my videos is “What IDE are you using?” then I feel like I have failed in my mission of helping you learn new things.

Video Update

This week there have been three new videos added to the site.

https://codereviewvideos.com/course/symfony-3-for-beginners/video/loading-users-from-the-database

First up we covered how to log in using users that are stored in our database.

Throughout this series we’ve been covering how to do the whole “log in” and “registration” processes ourselves, rather than rely on a bundle like FOSUserBundle.

Now, there’s nothing wrong with using FOSUserBundle (I use it a lot myself), but if all we know about is how to copy / paste from their docs, then it becomes a) hard to modify for our own needs, and perhaps more importantly, b) hard to debug when things go wrong.

In this video we learn how to combine both users that we ‘hardcode’ (via the in_memory user provider) and our users provided by the database, so that our login process looks at both ‘lists’ of acceptable users when we try to log in.

https://codereviewvideos.com/course/symfony-3-for-beginners/video/automatically-logging-in-when-registering

One thing I find super frustrating is forgetting about the edge cases when trying to estimate software delivery targets.

A cure for this – if you have never tried it – is the ‘game’ of planning poker. Now, this is somewhat nerdy (hey, it’s software dev!) but stick with me.

Someone – usually a PM – pulls up the backlog of tickets and goes through them one by one. The problem is described and then all of us devs make a guess at how long we think it will take to complete the task.

Every time I’ve done this process we’ve used the Fibonacci sequence in order to determine the size of our guess. Heck, of course there’s a Stack Overflow Q about this very issue:

http://stackoverflow.com/questions/9362286/why-is-the-fibonacci-series-used-in-agile-planning-poker

Anyway, what comes out of this is that usually I guess 2 and someone else guesses 13, and then we have a discussion about why our guesses are so vastly different. Usually it’s because I only ever seem to think about the happy path. D’oh!

This video is a great example of one of those times.

When guessing at how long the Registration process will take, it’s super easy to not think like the cold, beating mechanical heart of a computer. Sure, we can Register just dandy, but why would we be immediately logged in after Registration? We wouldn’t be, because we never explicitly told it to log us in.

We fix this problem in this video.

https://codereviewvideos.com/course/symfony-3-for-beginners/video/restricting-routes-to-only-logged-in-users

In the penultimate part of this series we can move on to restricting our app down to only those users who are successfully logged in.

Again, there are a few gotchas here as we shall see throughout this and the last video in this series.

For the next series to hit the site I’m going to go with a “Build Along” series. I’ve had what I think is a fun idea, and these types of courses always seem to prove popular, so I’m looking forward to sharing this.

Following this I’m expecting to add the Deploying with Docker series to the site. This one is going to be a longer form series, and I’m still polishing the end result, so a little further patience is required just yet.

Until next week, have a great weekend and happy coding 🙂

Chris

Published by

Code Review

CodeReviewVideos is a video training site helping software developers learn Symfony faster and easier.

2 thoughts on “What IDE Do You Use?”

    1. Yes, similar to the GitHut tutorial. These seem to be the most useful courses for hands-on learning. I think this one is going to be in two (or maybe three) parts. The first part will be the basics, the second taking a basic idea to a real world site, and third adding some more advanced features.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.