IDE - The beginner's trap

Hello everyone, today we talk about IDE's !

But first..

What's an IDE ?

For me, an IDE is a software that allows us to write code with a comfortable environment for the language we're using. We can do thing faster and better. I would even say that it is not a software but a set of software offering a lot of tools like syntax highlighting, a debugger, code completion, code reformatting, ...

Why we love IDE's ?

Don't you think having an IDE can change a life? We are always defending in comments and forums that our IDE is the best. Why? Simply because it really changes our lives and the way we code. We do things twice as fast and better.

Whether it is self-completion, reporting problems with our code, reformatting our code, etc... Our IDE saves us from many struggles sometimes.

It is not only a tool but also a way of working

But for a beginner, the IDE can be a double-edged tool ( and a very sharp one) because of some of the things we will discuss, if you don't mind, in this article.

Why I say that's a trap ?

What I will say throughout this article is the result of my personal experience and those of the people around me (classmates, colleagues, ...). Do not hesitate to give your opinion and share your point of view 😁.

The first trap a beginner can fall into, for me, is to use an IDE to learn a new language. Because, for me and for most people, it is easier to learn by using a maximum of senses, the fact of reading only one course is not enough to learn correctly and in a productive way. It would be better, for example, to read the course, reproduce the code, and even watch a video to make all your senses work. (sight, hearing, ...)

Using an IDE leads to this, because even if you copy the code you find on the tutorial or the course or anything else, the IDE helps us and self-completes some keywords and that's how my classmates learned java with Netbeans in class but as soon as they had to write a simple code that will display "hello, World!" they were incapable because they didn't know exactly how to write this code because some element was automatically generated by the IDE as public static void main (String[] args) {} and this is one of 100 other examples ! I have also fallen into this trap in the past, now, when I learn a language I tend to copy all the keywords on notepad in order to remember more precisely each element that characterizes this language.

The IDE can also be a calamity for people who are too perfectionist. I know people who spend more time looking for a beautiful theme for vs code than learning to code, it makes me laugh at times 😆.

I also had the opportunity to meet people who only knew how to use git with the help of the buttons available on the IDE they were using, you know, the buttons that commit & push at the same time automatically. And then, when they change their IDE, they're lost, because they can't figure out how we this or that. They were too dependent on their tools!

What we can do ?

That is why, I think that before you can make your life easier with an IDE, you have to go through a learning stage without it and this way understand exactly the tools that have been used and the technologies behind it.

An expression tells us that we must walk before we can run, and I think it can be applied here.

If you know what you're using you will be more productive and that's what we're all looking for. Productivity.

So, start learning without you're IDE, take some time to learn the tools inside, and try to use always the same to be comfortable with.

Like a said before, try to learn with a video and then reproduces the code, then fidgets with the code. This is the best way to understand an element.

I had a lot of other reasons in mind last night, but I made the mistake of not writing them down directly! I should get better at that. ALWAYS TAKE NOTE 😭 !!

That was my last advice for today. 😜

Conclusion

I hope you have enjoyed this article, as mentioned above, I invite you to give your opinion and share your experiences on this subject and

Happy coding and Happy new year!

a little bit late...😁

Write your comment…

12 comments

Isn't this a bit like saying you should write assembly before relying on a compiler to do it for you?

Show all replies

The point is that every convenient tools that does stuff for you - like a compiler or IDE or framework - makes you learn less about the layer below, because you need it less.

But that doesn't automatically mean you should learn the lower layers. Compilers took care of assembly so now most of us don't need to learn it anymore. High level languages took care of GC so now most of us don't need manual memory management anymore. IDEs write public static void main(String[] args) for us so why memorize it?

At the extreme, learning all the lower layers means learning electrodynamics, because all we're really doing is pushing electrons around metal circuits. We can all agree that is ridiculous (I hope), so where's the cutoff? When can you stop learning lower levels?

So to summarize: yes, if you learn with an IDE, you don't learn to do manually what the IDE does for you. But why would you?

Reply to this…

Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!

  • 💬 Ask programming questions without being judged

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 More than 500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Create my profile

Because too many people agree, I need to play the devil's advocate here ;-)

Not only about language, but libs or frameworks, knowing and mastering an IDE makes it easy to learn the new things we have in hands. Let me give an example. I'm writing some Python stuff, I need to use a lib I use often, but this time in a slightly different context. The IDE lets me navigate very quickly to the source of that library, then back, then into that 3rd party source again... at the end of the day it makes me learn much faster that dependency, the conditions under which it works as expected, ... Let's take another example. I'm learning a new framework, and start writing some simple apps with it. Having a powerful debugger with breakpoints (which is one of the criteria to distinguish an IDE from an advanced text editor) let me explore the object structure exposed by the framework or language, verify my assumptions (when we learn a new thing, we're often like 'ok, if I remember correctly this should be x or y'). In short, it let us iterate and experiment faster, with a faster feedback loop. And learning is all about practice. The faster you can iterate, the faster you learn. Don't get me wrong. Reading the docs, understanding and remembering the fundamentals will always be a requirement, no matter the tool. But then you start experimenting, and all those small experiments are the first step in your experience with a language. And having the tools that let you maximize your iteration speed is the key to learn faster. And I have to agree 100%: anyone needs to know his tools. (And choosing a theme for an IDE is not learning how to master it ;-) ). Being able to quickly navigate through the code, use the debugger, inspect the relations, all that stuff is more insights into the new things you're trying to learn.

In other words, I wouldn't say an IDE is a trap for a beginner.... but I understand how one could think it's easier to get sidetracked more easily ;-)

Reply to this…

I couldn't agree 100%. Some IDEs can even suggest you the best practices in coding. It will be very beneficial for beginners

Thank's for giving your opinion. 😋

I agree with you. That's like a teacher showing to his students how to do something. But after the demonstration the students have to practice and I think that's the same thing with IDE's, they can show you the best practices but if the IDE generate them all the time, you will never learn or slower. That's why I say that's better to start without it and after use the IDE to improve your way of doing things.

Reply to this…

I think we learn to fulfill needs. When any IDE or framework cannot give what we want, we try to dig deeper.

Todays learning process is little hybrid. People first learn to make crud or an application with more coding, then start exploring framework, libraries and generator. Later they start to learn deeper because of the requirement. This process is OK.

I think everyone should become productive and efficient not just a coder.

Reply to this…

I think especially when you're learning, figuring out how to read and write the most basic syntax of the language serves you better than having to magically autocomplete for you. Writing code really reinforces how to read code, and I have yet to see any IDE that autocompletes reading code for you ;)

I see people every week struggling with linter errors in their editors that are warning them (wrongly) about code that's fine, but because there's an "error" in their editor it stops people from even running the code to see if it works or not. They get stuck before they even try it because they think it's wrong when it's not.

Some tools that can be helpful for advanced users can also be a serious impediment to new learners!

Reply to this…

Load more responses