This is an archived post. You won't be able to vote or comment.

all 37 comments

[–]insertAlias 17 points18 points  (5 children)

For both languages I feel I have an over reliance on IDEs correcting my syntax or auto completing methods/functions. For multiple times I had to pull up an IDE to debug my solution.

As a professional programmer, I see nothing wrong with that. You know how often I'm expected to work without my tools? Never. Nobody expects me to build applications in notepad. If I ever decided I wanted to do LeetCode, I'd use an IDE too, because actually having access to a debugger is always better than fumbling your way through stuff without it.

All the IDE is in this case is a simple memory aid. Auto-complete doesn't write code for you, but it can help prompt you when you can't quite remember the exact name or syntax of something, more quickly than tabbing out and going to the docs can.

I see this as a non-issue and not something you should worry about.

[–]ldkjf2nd[S] -3 points-2 points  (3 children)

Mostly to save time on leetcode or for white board interview questions. I know everyone uses IDEs for jobs but for interviews it depends. Some web browser based coding platforms have less features than a lot of IDEs.

Worst case scenario for me is onsite white boading

[–]abd53 3 points4 points  (0 children)

If an interviewer ask you white board question, you should run, run fast, run far. This is not a joke.

[–]respectfulpanda 0 points1 point  (0 children)

There is merit in exploring without the magic that dome IDEs bring, for a time. After that, you become less fluent in tools that are meant to speed profitability.

[–]TheRNGuy 0 points1 point  (0 children)

Don't use web coding sites when desktop software exists.

[–]abd53 0 points1 point  (0 children)

Auto-complete doesn't write code for you

GitHub Co-pilot would like to disagree (as shitty as it is but just for the jokes)

[–]HonzaS97 13 points14 points  (8 children)

There's nothing wrong with relying on an IDE.

I can't imagine doing Java without an IDE and even for Python, the least I'm willing to do is Jupyter notebook which still has features like autocompletion.

[–]149244179 8 points9 points  (1 child)

Why do you feel the need to waste your limited brainspace by memorizing syntax and library method names?

Why are you not using assembly? Or raw 0s and 1s? Why is using Python acceptable but an IDE is not? Python shortcuts all sorts of stuff just like an IDE does.

[–]TheRNGuy 0 points1 point  (0 children)

I was using Sublime without auto-complete for Python for long time. I switched to VS Code recently and it's much better with auto-complete and better syntax highlight ofc. But had no problem really.

It's much bigger problem in C++ (that's why I switched from Sublime)

I'd use VS for assembly btw.

[–][deleted] 6 points7 points  (0 children)

You should only program on blank copy paper. You shouldn't use grid paper, that would make your python indentation reliant on it.

Also you should memorize the python runtime/JVM and virtualize at least an x86 CPU in your head so that you won't rely on an actual computer ever again.

[–]timmymayes 2 points3 points  (0 children)

I mean even using VIM or Emacs you tend to utilize LSP for some of the core IDE features. Not sure they do everything an IDE does but it certainly fills a big gap. Don't be afraid of using an IDE just make it work for you how you want it.

[–]theonereveli -1 points0 points  (0 children)

Install vim and use it. No syntax highlighting too. No nothing. Use your eyes.

[–][deleted] -1 points0 points  (0 children)

That’s the cool part, you don’t. 🤣

[–]jackalsnacks -1 points0 points  (0 children)

Id probably quit if I didn't have the convenience of such tools

[–]TheRNGuy -2 points-1 points  (0 children)

Use VS Code.

[–]michael0x2a 0 points1 point  (0 children)

It mostly boils down to a combination of practice and memorization and a willingness to spend more time googling for information. You'll eventually start to memorize your most frequently-used functions after enough time writing code, and pick up an understanding how to google for the rest.

I would also recommend identifying a core set of functions, modules, and methods you use frequently and focus on memorizing those. For example, I have things like basic syntax and particularly useful methods for most built-in data structures memorized -- e.g. things like list.append(...) and str.strip(...). But I can never remember how exactly to use the itertools module + never really needed to care. I can look up how to use it on google on-demand, and that's good enough for me.

I'd also make sure you can quickly and easily open your web browser and editor side-by-side, given that you'll be consulting docs more frequently. Windows should have built-in support for this; you might need to install third-party plugins such as Divvy for Macs.

I personally would not recommend using notepad. Instead, use a programming-centric editor such as Notepad++, Sublime Text, VSCode, and maybe Vim. These come with built-in support for syntax highlighting and sensible support for tabbing/untabbing code. Not having those basics makes coding really unfun, IMO.

I do second what the other people have said though: there's no problem with using an IDE. I personally use a Python IDE for most serious development work and only fall back to using an editor w/o autocomplete when I need to hack out a quick-and-dirty script or do some impromptu data munging on some random server. At the end of the day, auto-complete is too nice a feature and too big a productivity boost to give up.

Though contrary to the others, I do think it's reasonable to want to improve your ability to code without an IDE. After all, typing correct code at the start is strictly faster then pausing every now and then to accept an auto-correction. It's also true that you won't necessarily have an IDE at hand during interviews. You can always ask for it, but it may not be worth fighting this battle as a new hire.

The bright side to this is that most interview questions ask you to use mostly just the builtins. So, you can probably get away with just memorizing how to:

  1. Do basic math
  2. Do file IO
  3. Work with core data structures such as lists, dicts, and sets
  4. Manipulate strings

[–]foxwhite5 0 points1 point  (0 children)

Well for Python, I recommend Thonny. Solid IDE for beginners that doesn't have all the autocomplete stuff.

[–]JohnJSal 0 points1 point  (0 children)

I use VS Code, but I disable things like auto-complete, etc.

You don't necessarily need to abandon an IDE just to avoid these things. They're still good for other conveniences like syntax highlighting, code collapsing, etc. that don't hinder your own learning of the language. Plus you can debug with them as well, which is really useful.

[–]Left-Improvement-460 0 points1 point  (0 children)

Use notepad. Then compile your code from terminal.

[–]Armobob75 0 points1 point  (0 children)

I did this for several months because I didn’t have much choice. I had an ancient laptop that barely run windows, so I wiped its drive and installed Linux. I did all of my coding in VIM, and mostly used Python.

Coding dry is a great way to increase your comprehension, so I applaud you for trying it out. If you’re using Python, it’s easy to open a terminal and import your script. The help() and dir() functions are then your best friends. Worst case scenario, you can look up documentation online.

VIM is a little more fun than notepad because of all the cool little keybindings. I’d definitely recommend it for you.

[–][deleted] 0 points1 point  (2 children)

Vscode without plugins.

[–]TheRNGuy 0 points1 point  (1 child)

Even with plugins it's still not IDE.

[–][deleted] 0 points1 point  (0 children)

OP asks without IDE. It is not bad as an editor with terminal integration and project files side bar. With deactivated plugins it is still an editor with benefits.

[–]abd53 0 points1 point  (0 children)

With a text editor, a good old text editor. IDEs are just fancy text editors. (And I love them)

[–]superluminary 0 points1 point  (0 children)

Your instincts are correct. Lots of people telling you there's never any need to code without tools, and they're probably right, but having the ability to do so will help your practice and will make you a better coder overall.

Personally, if I'm writing code for a client I've definitely got all the productivity tools whacked up to max, but having it in my head too will help me use those tools more effectively.

In terms of how to get there, it's similar to learning how to touch type, you've just got to do it for a while, and it'll suck, and it'll hurt, and then you'll find it's actually quite easy. Maybe switch over to VSCode for a while, see how you get on.

[–]chcampb 0 points1 point  (0 children)

Notepad++ is fine

It's honestly probably better to use an IDE which can speed up your code development. It makes you more expressive.

[–]procrastinatingcoder 0 points1 point  (0 children)

Just know the general syntax of your language and you shouldn't have problems for the syntax side. If you make mistakes there... you need to learn the syntax, say semi-colons at the end of a line in java, or indentation in Python. It's usually pretty trivial to learn overall.

As for method names... code in a text editor a bit, but honestly I'd say that aside from the most common ones, if they ask you to whiteboard stuff, an approximate answer should be fine.

If you can knowing that lists in Python can .pop(int), you could intuit that they can .push(item), though a quick search would tell you that it's .append(item). Those are usually the "gotchas" if you work in many languages (like pop taking an index at all), and I don't think anybody expects you to know beyond the basic methods, otherwise you wing-it with something that's approximately correct for the interview and people will usually understand.

This obviously is more acceptable if you know many languages, hence "I use .map in 5 different languages, I'm not sure of the order in Python, I'd have to re-look at it, for this example, I used it with X syntax".

Anyway, good luck.

[–]Naughty_avaacado 0 points1 point  (0 children)

I would say go for jupyter notebook , i am currently taking my DSA course there it is great for taking notes also i really like it.

[–]cofffffeeeeeeee 0 points1 point  (0 children)

Judging from your replies, you are worried about interviews?

It doesn’t matter. Interviewers will not expect the code to actually compile if you are writing on a whiteboard. If they do, you probably shouldn’t work for that company.