DEV Community

Discussion on: Juniors Literally Can't Write Switch Statements: What Senior PHP Developers Need to Focus On

jeroendedauw profile image
Jeroen De Dauw

I strongly disagree with one of the basics you mentioned: "Use a simple text editor for a few years, not a super powerful IDE". In my opinion, you should do the exact opposite. Why?

  • Feedback loops help you to learn. IDEs provide lots of instant feedback via static analysis. They will highlight all kinds of classes of mistakes and tech you to not make them.

  • Lack of these powerful tools teaches you to work as if they do not exist, which results in a lot of bad habits that are hard to unlearn. Things such as putting too much code into a single file because navigation is hard, or not renaming a variable because search and replace that does not understand scope is too dangerous.

My points here are about writing and modifying code. I do concur it is not a good idea to hide things such as SQL behind GUIs, especially if you do not understand what is going on.

robdwaller profile image
Rob Waller Author

I think this is a more nuanced point. I started coding in notepad and I wouldn't advise anyone do that.

I think a clean install of Atom or Sublime is a better place to start than say PhpStorm.

I think there is a lot to be gained by debugging the old hard way rather than using tools to help you. To begin with at least.

jeroendedauw profile image
Jeroen De Dauw

Perhaps we are not in disagreement after all, at least not very much.

In my opinion using debuggers teaches you bad habits. You should not need a debugger. It is one of many things inside of PHPStorm that IMO you should not use. I've been using PHPStorm for years and not used the debugger for at least 4 now.

That said, I think junior devs, and all devs, should still use IDEs such as PHPStorm, to make sure they have access to:

  • Static analysis showing immediate feedback on bugs and code smells
  • Navigation capabilities such as "go to definition", "show all implementations", "find all usages", etc.
  • Strong auto-completion
  • Safe refactorings at least for basic things such as renaming stuff and inlining variables