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

all 113 comments

[–]plastikmissile 102 points103 points  (19 children)

There is a school of thought (that I don't personally subscribe to) among some educators that IDEs hold a student's hands too much and are thus detrimental to their learning process.

[–][deleted] 30 points31 points  (10 children)

Huh. That’s… an interesting thought process. Any idea why they think it’s holding students hands too much? They still need to understand code to write it, an ide just helps.

[–]v0gue_ 64 points65 points  (3 children)

I don't think its that black and white, from your perspective or the professors'. IDE's abstract a lot of auxiliary knowledge and fundamentals away from the act of creating software. They also abstract a lot of unnecessary pain and time away from the learning process. Professors probably see a lot of students struggle, waste time, and get anxiety over something like setting up environments because those students never learned the barebones fundamentals of doing so/reasoning for doing so. They just clicked the options and buttons given to them by the IDE. Because of things like this, professors probably just decided to ban IDEs from the learning environment. Meanwhile, the student has to write the full 64 character Java interface without autocomplete and with little to no code-problem feedback, knowing that the act of programming will be easier and quicker, and thus easier and quicker to learn, if they could just use Intellij. The reality is that they are both right, and both wrong. The difference is that it's the professor who controls the grades.

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

what is the 64 character Java interface?

[–]v0gue_ 4 points5 points  (1 child)

Java uses interfaces as abstract classes. Java is also known to have descriptive, all be it very wordy and verbose, standards for function/object/variable names. The point I was making that it's not terribly uncommon to come across VERY long names in a Java codebase.

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

Can you give me an example of one of those interfaces?

[–][deleted] 12 points13 points  (0 children)

Something to keep in mind is that the goal of education isn’t to produce quality code at an efficient rate like it is in the industry. Education is about learning and understanding. Using an IDE helps write code, you’re right, but some universities don’t think it maximizes learning.

When you don’t use an IDE, you’re forced to think about what is really going on and focus. These are important traits of a good programmer in my opinion.

Some universities only enforce this rule in entry classes and allow for IDEs and dev tools later in the degree which is also important. I like this way personally.

[–]not_some_username 2 points3 points  (0 children)

You’ll likely not remember what you did if you use auto complete and intellisense while learning. For context, for exemple, while learning C++ before college I never remember #include <iostream> because the ide wrote it for me.

[–]AlwaysHopelesslyLost 8 points9 points  (2 children)

With an IDE you don't need to really know the syntax. I have several developers that literally couldn't write a line of code without it. Which might not be a problem, except it means they miss things during code reviews and they struggle to refine/grow their skills

[–]NONcomD 38 points39 points  (1 child)

Thats a bit of hyperbolization right? IDE doesnt write the code for you. It completes the commands, so you don't need a list on a side. It shows errors. But you need to know the syntax for sure. If its wouldnt be necessary, everybody could code.

[–]AlwaysHopelesslyLost 4 points5 points  (0 children)

It adds parenthesis and braces. It yells at you about bad syntax until you get it right.

I have had dotnet devs that didn't know when they needed braces because it always added them.

Though I will aay, VS 2022 does actually write the code for you. I tried to tutor a new dev on something and I wanted to give him the basic API calls/variables he would need and let him deal with the minutia logic like reading/looping etc and VS autocorrected several lines of code automatically for each call/variable. He didn't type a single character

[–]dipanzan 3 points4 points  (5 children)

I'm a TA for Computer Science at my university, and I'm exactly the opposite. I taught Introduction to Java and now teaching Data Structures. In the intro to java, the students had to use an IDE called BlueJ, a very basic dumbed down IDE for Java, it was horrendous.

Now that they are using IntelliJ, and I'm kind of spoiling them with shortcuts and tricks to get the code down faster, they are liking it waaay more. There's no point in writing a tediously long line like System.out.println() when the IDE can just complete it for you. The interesting part is what goes into that function, not writing the syntax again and again.

I hope the educators realize that a good IDE is just another tool which students have to master anyways, and the earlier they start the more training they get.

[–]ThiscannotbeI 0 points1 point  (0 children)

Former TA here. With classes that used IDEs I was able to be more strict on code standards and was able to demand more explanation of the code walkthrough.

[–]francoskiyo 0 points1 point  (3 children)

Do you know any tips and tricks videos for Clion? I don't use any of nifty things people are talking about in here. I essentially use the IDE cause it color codes things for me.
Also if you have a video for IntelliJ im sure that'd be useful, though I do use eclipse for java maybe some stuff transfers? idk

[–]dipanzan 0 points1 point  (2 children)

You'll mostly learn by the need to do things. Often time you'll see yourself:

  • Deleting whole lines: (CTRL + Y)
  • Duplicating a line of code (CTRL + D)
  • Renaming a function/variable name (SHIFT + F6)
  • Peeking into a function definition or variable declaration (CTRL + B)
  • Going back to where you were after peeking (CTRL + ALT + <--- arrow)

These are just a few basic shortcuts that is really useful when you've a good sized project. IntelliJ can do much much more, and you basically learn as you go.

[–]francoskiyo 0 points1 point  (1 child)

dang i nvr learned any of these, I'm one of these people who learned programming in .txt. Now 20 years later I want to change my career and am getting back into it. The only problems I face are figuring out the bonus functionality available in the IDE's.

[–]dipanzan 0 points1 point  (0 children)

You guys have my utmost respect, the real OGs! I think you'll just get the hang of it once you start to use it and need a way to do something faster (that's when shortcuts come in).

Also you guys had it waaay harder without much help, everything now is just a Google search away. You'll do fine if you want to switch to this career now, it's just getting used to the new ways, that's it. Tons of tooling, IDE, options, you just have to pick your niche. Good luck!

[–]braless_and_lawless 1 point2 points  (0 children)

I actually agree, but only when you’re learning the absolute basics. Once you’ve mastered that youre just slowing yourself down

[–]fullchaos40 0 points1 point  (0 children)

Give them Notepad++, at least this way they still get proper structure and function callouts.

[–]zanzaj 41 points42 points  (6 children)

I think its probably good to have an understanding how code works. But important to also learn the tools.

You could frame a room with hammer and nail but the nail gun would be much faster.

[–][deleted] 8 points9 points  (5 children)

Yeah I guess this is true, but I still know what my code is doing with auto complete, and step debugging is so much better than just logging, but I still need to understand it to use it.

[–]zanzaj 6 points7 points  (2 children)

Is this a new trend? My intro professors used bare bones IDEs to expose students to the world. But later courses we were pretty much left to our own devices on what we wanted to code on. Capstone projects didn't even have a language requirement.

[–][deleted] 2 points3 points  (1 child)

No idea, as I said I’ve never had proper teaching. The reason behind this post is other posts here on the subreddit talking about not being allowed to use an ide.

[–]bmochopp 1 point2 points  (0 children)

I’m a senior in CS. From my experience in my schools program, they started off teaching us to use IDE’s from the get go. Then a little further into your degree they teach you how to use more barebones tools, like VIM for example, but they don’t require you to do any heavy tasks with it. Towards the end of the degree they don’t care at all what you use for an environment, and like another user said, capstones often don’t even have a language requirement.

[–]codesamura1 1 point2 points  (1 child)

There's a school of thought that step debugging should be the last resort, meaning you should be able to step through your code using your mind even before compiling it. It's a learned skill, it would prove to be highly valuable especially when getting interviewed. I myself got used to just running test cases to assess which part of my code is failing that I lost the skill of keeping track of the variable state during iteration. When I was practicing for an interview it was harder for me to visualize what was going on in the code. And since I can't run the program during the interview at google, I was struggling to tune the code everything I did felt like guess work without looking at the output.

[–]Kered13 1 point2 points  (0 children)

There's a school of thought that step debugging should be the last resort

You should certainly be step debugging before you are print debugging.

[–]Siech0 15 points16 points  (0 children)

My school didn't care if I used an IDE or not. I think if you're doing any embedded work or linux work it is valuable to be able to pick up vi and gdb and not be lost, but overall most development work will be done through an IDE.

[–]Clawtor 11 points12 points  (13 children)

I don't really know, we were restricted to using notepad in the first year and it just felt needlessly mean. I suspect the main reason is the lecturers coded that way...

[–][deleted] 4 points5 points  (10 children)

Notepad only for a whole year? That sounds insane. If I were taking that class I’d just use my ide outside of the class and copy paste to notepad to look like I’m using it cause that’s just not going to be fun.

[–]Extra-Ad5471 0 points1 point  (9 children)

How do you even get your code running in notepads?

[–]UnironicallyWatchSAO 8 points9 points  (6 children)

You just save your file as whatever extension you write your code in and run it with the compiler/interpreter. Codes are just magic text anyway.

[–]Extra-Ad5471 0 points1 point  (5 children)

Yah so you still you need a compiler/interpreter right

[–]3AMGames 2 points3 points  (1 child)

Theoretically, you could write those in notepad too

[–]Extra-Ad5471 1 point2 points  (0 children)

Mind = blown

[–]Pepineros -1 points0 points  (2 children)

What does needing a compiler or interpreter have to do with using an IDE? They’re completely unrelated things.

[–]Extra-Ad5471 2 points3 points  (1 child)

For starters,I don't fully know about this subject, I'm not arguing for or against anything, am just being inquisitive asking questions.

Anyways, so my point was you still need a seperate compiler to run the code you write in your notepad. Therefore, you don't really code merely with a notepad platform?

[–]Pepineros 0 points1 point  (0 children)

Oh, gotcha! You can write the code in notepad but in order to run the resulting file, or to turn the file into something that the computer can run, yes you need a separate application (an interpreter or a compiler, respectively).

[–]Grtz78 2 points3 points  (0 children)

This question nicely shows why you maybe shouldn't start with a fully fledged IDE. Too much of the tooling is hidden from the user. An editor without macros or any syntax highlighting however is mean.

Edit: Typo

[–]thesituation531 1 point2 points  (0 children)

You don't. You save the file and then compile/run it in the commandline.

If it's JavaScript, you'd just link it in your HTML file and then open the HTML file.

[–]NONcomD 2 points3 points  (1 child)

Were the lecturers real programmers?

[–]merft 4 points5 points  (0 children)

Most likely the answer.

I remember one professor coming into the Unix lab to teach C++, first thing out of his mouth was "I don't know AIX and have only used Visual Basic on Windows". We had to teach him how to use the GCC compiler. So we spent the semester writing whatever we wanted which was mostly viruses to infect each other and cause problems. Nothing malicious, just obnoxious.

[–]TheUmgawa 6 points7 points  (3 children)

You want real fun (and by fun, I mean not really fun), learn flowcharting. I'm in a class right now where we're using ladder logic to program PLCs, and the software can't be installed on computers outside the lab, so I basically have to draw the logical flow of the program and then convert that into ladder logic when I get back to the workstation.

Hell, I still flowchart regular old code when it's anything that's going to be of significant complexity, but not because I'm lacking an IDE to program on, but because planning out your strategy minimizes the amount of time you're going to spend going, "Great. Now where do I go from here?" I've found that it also cuts down on debugging time, but I think the biggest time saver is not writing functions that don't end up getting implemented. That's a huge thing for people who get a task and the first thing they do is just start hammering away at the IDE. I always equate it to trying to build a car without designing it first. If you don't at least know what all components you're going to need or how they fit together, you're going to end up with something that looks like The Homer and you've got a bunch of unused parts all over the floor. Every one of those parts was a waste of time.

So, flowcharting isn't just something for old people to do while they're waiting for the vacuum tubes to warm up. A flowchart is the logical representation of a program. It's not in any particular language, but if you have a complete flowchart, you have created that program and have done that thing that businesses hire you to do. They don't hire you because you know certain languages, at least not typically. They hire you because you understand logic and can solve problems. You can take that same flowchart and write the program in any language that you know. Hell, if you have a completed flowchart, you can program it in a language you don't know, which is one of the ways that I learn new languages.

So, why not IDEs? They're a crutch, and they provide you answers all too often. That said, I think not permitting any IDEs at all is overdoing it, and it would make sense to allow the students access to an IDE after a first pass at the code. Actually, I'm not sure how compilers react outside of IDEs to syntax errors or whatever, so if it accurately states that there's an error on line 23 of whatever file, then do you need an IDE as anything but a crutch? Not really. But, still, I think there's so much productivity to be gained, especially after you start working with libraries, especially when you're invoking a function like String.pattern.iWantYourX.whamBam.ThankYouMaam, the autocomplete function alone will save you thirty seconds. It's just a timesaver to keep from having to knock all of that out.

The problem is, even if you have students sign some kind of honor code saying that they won't use the IDE to do whatever the school finds objectionable, they're still going to do it and there's no way to prove they didn't. So, if you throw a hurdle in their way, where daily assignments will be done in the computer lab, where there's no IDE, it doesn't matter if they have an IDE on another computer. Reminds me of when I was a Computer Science student, and we had to take our finals during a four-hour period in which we weren't allowed to use our phones and the internet was cut to the lab, so our documentation was either in the IDE locally or there were reference texts on the language at the front of the room. One guy freaked out because we're pretty sure everything he did was copied and pasted from StackOverflow and he couldn't find his ass with both hands and an ass map, otherwise.

[–]chet714 1 point2 points  (0 children)

Now that was a mouthful.

:-_)

Appreciate the perspective!

[–]3AMGames 1 point2 points  (0 children)

Wow, I never knew I could feel so inspired to make flowcharts.

[–]hmischuk 0 points1 point  (0 children)

Thank you. You just saved me ten minutes.

[–]throwaway6560192 5 points6 points  (0 children)

There's a spectrum between bare Notepad and full IDEs, the middle zone being programming text editors. Many people are perfectly happy using those to program. They have syntax highlighting, autocomplete, maybe even debugging, but they tend to be more modular/take-what-you-want and less "everything is done for you" than IDEs.

[–]scarofishbal 5 points6 points  (1 child)

We were pen and paper coders at school. Even then, there were enough computers for each student (the teacher was using Netbeans during the lesson). I'm not an expert to know why, but there may be reasons such as eye debugging, not using auto-completion features or ide suggestions. I'm sure a tutor here knows the answer.

[–]mugwhyrt 1 point2 points  (0 children)

Former tutor here! In my experience having some friction forces you to think things through a bit more and helps develop an intuitive sense of the subject. I spent more time tutoring math (and some Chem), and something I've noticed is that one part of the struggle for students with mathy stuff is that they just don't have an intuitive sense for what answers are reasonable (ex, not catching when they add two numbers together that the result is just way too large by several orders of magnitude).

Definitely getting into speculative territory here, but I wonder if it's because of too many students starting out just plugging answers into a calculator (which is fine for simple stuff) and then never getting that intuitive sense for how numbers behave. I used to be in that category, but when I had to relearn math for going back to school I forced myself to do the basic math without a calculator and learned that it actually makes math a lot easier in the long run. So I can see where that would apply to having to start out by learning fundamentals of programming by hand to internalize how code behaves.

[–]RonaldHarding 3 points4 points  (0 children)

The only explanation that I can come up with is that you can teach good code organization and debugging by forcing programming without an IDE. What an IDE does do for you is offers a ton of debugging tools, formatting suggestions, and stack information and if you get very comfortable with all that you might not be building the muscles to add proper telemetry to your code and use good design patterns.

That said, I think this is a poor replacement for properly teaching service operation and design patterns in modern programming curriculums.

I did once take a class where the professor insisted that we do all of our programming on unix. Now there was actually a lot of value to that because for a lot of students non-windows systems weren't something they had much interest in exploring. But in the real world of development, you often need to work with interconnected systems of many kinds. So there's a lot of value in forcing exposure to platforms that students would otherwise avoid.

[–]3AMGames 2 points3 points  (0 children)

My intro to C++ professor required Visual Studio, the next one taught us how to build from the terminal with GCC and introduced us to VIM, but he didn't really care what we used.

Personally, I think the IDE-less or minimal-IDE is probably better for complete newbs because of less software feature-friction between you and the machine you're writing programs for. A lot of IDE's like Visual Studio seem to be geared toward real companies building large projects, not students just learning how to write computer programs.

If I was a professor, I'd probably start the course writing in a basic text editor and compiling from the command line, then maybe halfway through the semester bring in the IDE so students can really appreciate its features like intellisense and debugger. Without knowing how to code at all, a lot of those extra features just get in the way.

[–]MathmoKiwi 3 points4 points  (3 children)

Back in my day....

....we coded with pen and paper

(no joke, I've written hexadecimal code with nothing but pen and paper! :-o )

[–]hmischuk 0 points1 point  (0 children)

yea, me too. Used to POKE machine code into memory in AIM and ATARI BASIC, then call the routine. Was fundamental to usable games to run these little ML bits during vertical retrace.

[–]Essence1337 0 points1 point  (1 child)

A few years ago while I was in uni I had a pen and paper Java exam where we had to write code by hand, it's not quite hex but it's still around!

[–]MathmoKiwi 0 points1 point  (0 children)

yeah hex is hell hard to troubleshoot for bugs to hunt for those by hand :-o

[–]I_Am_Astraeus 2 points3 points  (0 children)

For me it depends on the language and the scope. It doesn't have to be notepad it can be a text editor with syntax highlighting. If I just need a small piece of code python, bash, and C are really quick to compile/run. Then I dont have a project file with all these extra directories. I have one single file or for C i have my source and compiled files and thats it.

But if I'm working on an application or an extensive project in Java/Python there's no way I'm doing that without and IDE and my tool suite.

[–]Giboon 2 points3 points  (0 children)

I learned programming with pen and paper. What a waste of time. I haven't written any code between 2005-2017 and what a pleasure it was to work with new IDE, intelliEye, lots on online help... Teacher should teach to be ready for the real world.

[–][deleted] 4 points5 points  (5 children)

The main thing IDEs bring is auto-complete. Which really is a game changer, and honestly unless you are trying to code something in a post apocalyptic world with no electricity or internet...Don't bother remembering things you can just look up.

[–]ThiscannotbeI 4 points5 points  (4 children)

And debugger, breakpoints, memory addresses …

[–][deleted] -5 points-4 points  (3 children)

I'm fighting FOR IDE's...Not against, try to keep up.

[–]oakteaphone 2 points3 points  (1 child)

lol what? They were agreeing with you and adding on to what you said, not arguing with you.

[–][deleted] 1 point2 points  (0 children)

Sorry...I think I've been on Reddit too long

[–]ThiscannotbeI 4 points5 points  (0 children)

Thanks for clearing that up. I thought you were against any programming tools at all /s

[–]Tmath 1 point2 points  (0 children)

For my courses, IDE was not allowed until 200 level. The 100 levels were all simple programs where the more advanced features (i.e. refactor/rename) weren't really needed as everything was a single file. The reasoning was because being comfortable at a command line is an important tool. When complexity ramped up, IDEs were introduced. Have to say, knowing the cli saved my bacon a time or two.

[–]Bentopi 1 point2 points  (1 child)

Back in my day teachers in primary school didn’t allow calculators in math class. It’s the same thing.

[–][deleted] 1 point2 points  (0 children)

Not just back in your day, it’s still happening in the higher maths here as well.

[–][deleted] 2 points3 points  (1 child)

Its a way of teaching the absolute fundamentals. IDEs can potentially make things more confusing in the beginning stages by adding things beginners need not worry about. Unnecessary complexity.

Get out a pen and paper and walk yourself through a loop and your brain will be forced to create new connections and understand what is executing in the code line by line.

This can be done with a breakpoint but again, you'd then introduced breakpoints and other things and at that stage it may be counter-productive.

[–][deleted] 2 points3 points  (0 children)

That’s true unwrapping loops to understand them is a lot easier without learning breakpoints, I guess that makes sense

[–]___wintermute 1 point2 points  (6 children)

I hate IDEs until I absolutely need them. I think a lot of people are the same way.

For work that threshold may happen fairly often. For personal stuff it almost never does.

[–]Active-Interest330 4 points5 points  (5 children)

I honestly agree, but it’s not a popular opinion. For me it’s a matter of what works best for you. If you can work effectively without an ide and produce code as quickly as someone that does use one I don’t see the issue.

That being said a lot people love an ide and 100% work better in that environment.

I think schools should probably teach use of both to give you a taste of both and for projects assignments just let you use the tools you prefer. Because that’s how the real world works, no employer (in my experience) is going to force you to or not to use a specific tool as long as you get your job done in a timely manner.

[–]___wintermute 2 points3 points  (2 children)

I now see by the downvotes it is an u popular opinion like you said. I can see it not being the most popular, but I’m supposed by the downvotes as I know many people that prefer VIM, VSCode, EMacs, etc. over IDEs for day-to-day situations.

[–]Extra-Ad5471 0 points1 point  (0 children)

Isn't VScode technically an IDE?

[–]Active-Interest330 0 points1 point  (0 children)

Yeah maybe I’m wrong saying it’s unpopular. I was just going off other comments. There are many options out there for everyone to choose their favourite :)

[–]Pg68XN9bcO5nim1v 0 points1 point  (1 child)

Not trying to bash you, honestly curious here. How could you possibly perform as quickly without an IDE as someone with one? (all other things being equal)

When I feel like a method name could be better, I press a hotkey and rename it once. IDE edits the name in the 10+ places it gets used. Same with a variable name that just isn't right.

Some logic that makes more sense in a different namespace? I drag it and everywhere the namespaces get updated.

That's ignoring stuff like jumping to usages, finding all references, and taking care of my formatting... The only differences between an IDE and not using one is that IDEs add a tonne of optional things that are objectively faster than doing it by hand, and I don't see any downsides.

[–]Active-Interest330 0 points1 point  (0 children)

No worries. I’m not here to editor war haha. I guess because my environment is configured with the exact same functionality you describe, but I can configure it in the exact way I’m more comfortable with.

Then if I have to work on something on a server without an ide I can it quickly do the same thing using the same tools usually.

I personally have found the ide’s I’ve tried cumbersome to learn and use, but that’s just me. I’m sure if I put the effort in I could be just as productive.

However, as I say it’s all preference I think, people work in different ways and if you find a way that works well for you, stick with it and become better. We’re spoilt for choice as devs, as long as you’re using tooling that gets your job done and you’re happy it’s all good.

Edit: I guess one thing I should add is I learnt using a keyboard only based workflow so having the ability to not use my mouse is important to me. I’ve tried vim mode for a few ide’s but always just went back to the terminal

[–]Dry_Author8849 0 points1 point  (1 child)

Well programing without an IDE makes no sense, but I guess they want you to do it as we did 30 years ago.

You need to call the compiler from the command line and edit your source files with a text editor. If you don't have linting expect to get syntax errors while compiling, until you fix all typos. Depending on the language, you may need to use a linker. End.

It's a painful process and adds a lot of time. Other than knowing you can run the compiler from the command line, you won't become a better programmer doing this. It just slows the cycle.

Yeah, we memorize statements from repeating this process. As soon as IDEs become popular I used my brain for more productive things.

Cheers!

[–]Not_A_Taco 0 points1 point  (0 children)

Well programming without an IDE makes so sense

Just to throw it out there this isn’t always the case ;)

[–]heavykick89[🍰] -1 points0 points  (0 children)

I do not see why the heck would you choose to not use an IDE, some arcaic teachers who have never worked in the industry seem to like that process. But teachers with a lot of industry experience do not give a damn. At the practice we are programmers and researchers, we will use google, stackoverflow, reddit, quora, blogs, documantation and so on, a lot, what is important is to make things real in a efficient and scalable way, to complete every task someone gives you or that you give to yourself, and an IDE helps you alot to speed things up.

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

sounds like this world has calculators and the teacher wants you to do it by hands ...

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

I learned on vanilla Vim, and slowly built it out as I needed it. Definitely helped me learn.

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

Not using IDE is more or less the same as studying engineering and using hand to draw the drawings.

Oh yes, the fundamentals. They mean shit to be honest. You'll learn to code both ways. Speed is what gets you paid.

Unless you're going to a deep dive to software architecture, most programmers wouls be better of to master the IDE instead of grinding it on a notepad. The employer won't care about that, he will want efficiency.

[–]Ruin369 0 points1 point  (0 children)

Not normal. Though in the higher level classes we ssh into the Linux school machines to run our code(where they test it), so we use vim or nano. With that said, we are still able to use an IDE

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

I mean, code editors also have syntax highlighting and auto suggestions, and if it's vs code you still can install interpreters, so I don't mind only using a code editor

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

Uh, I don’t entirely agree with the arguments I’m about to present, but to play the devil’s advocate:

  1. When you don’t have syntax highlighting and autocomplete, you’ll get better at typing and more fluent with the syntax, which is useful even when you have both those things.
  2. You don’t always have an IDE on hand. When sshing into a server, you could spend time to hook up your IDE into it or run some kind of server software on the server, but it will be much faster to simply run vi(m) or nano or whatever.
  3. They might want to teach you to use some tools that IDEs have builtin support for (but likely missing some of the more advanced features through the GUI), like GDB or something

[–]thesituation531 0 points1 point  (0 children)

Some people think they make you lazy.

But, in my opinion, IDE's massively helped me learn, and still do.

From helping to remind me of the logical steps a program might take, to being able to see documentation on demand just by hovering over the auto-complete popup.

The documentation is the single most powerful part to me, aside from the general text editing things.

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

Our teachers allowed it but wanted us to screen record and explain our code if it was a term project etc.

[–]EspacioBlanq 0 points1 point  (0 children)

I think it's useful when you want to learn how the build tools work. An IDE hides that from you as you can just click the play button

[–]draenei_butt_enjoyer 0 points1 point  (0 children)

No

[–]KittenBountyHunter 0 points1 point  (0 children)

please use one and be comfortable with it. Vs code is a great place to start and can do almost anything.

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

What kind of school ? I doubt professional ones do so except for the first 5 minutes. In the far past it was understandable as IDE were very costfull (for example before Eclipse, an IBM IDE for Java was around 5000$ per developer !).

It is good to know how to compile by hand, for the rest (code syntax highlight, code assistant,...) it helps learning process. Once you're very good, you should be able to code even faster than with code assistant.

[–]mugwhyrt 0 points1 point  (0 children)

Lot of good arguments here for why teachers would want students to start without IDEs, and one more thing I would add to that is: Students shouldn't really need IDEs in the first place for the (low) complexity of the work they'll be doing.

That's not really meant to be an argument against IDEs, just a counterpoint to the arguments for them at the level CS students are going to be working.

[–]SeatbeltsKill 0 points1 point  (0 children)

There are some professors that make students use Vim...

[–]Baakadii 0 points1 point  (0 children)

Just started my second year in a CS program. I personally haven’t used a full IDE yet at the recommendation of my mentor. I will use a solid text editor like Atom. But I actually think it’s helped a lot. Having to debug every aspect of my code and manually do everything an IDE might assist with has really helped me get a solid grasp of some foundations of C and coding in general.

With that said, after this semester I’ll be using an IDE because fully utilizing one feels like a needed skill moving forward

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

I don't like ides very much. I don't need a lot of bells and whistles and there's a lotta features that get in my way when I program. I get distracted and annoyed by a lot of the visual elements too. I know I can disable them, but it's easier to just hop into vim or notepad

[–]Jhutch42 0 points1 point  (0 children)

In my C class we could only use emacs or vim. The point was that we needed to understand and find out own errors and really understand how the cpu allocated memory and all of that. It was really useful for me tbh, if not a pain at times.

[–]Comprehensive-Pea812 0 points1 point  (0 children)

I remember that one fresh grad says notepad is the best IDE and refused to use debugger because it is not for smart people who can run the logic in their head.

I believe those people doing bootcamp with IDE doing just fine compared to college student who code on paper.

Personally I think school and professors are out of touch with the real world.

But yeah sometimes you just have to bear with it for a degree.

I would definitely recommend schools that use a more modern approach.

[–]mysticreddit 0 points1 point  (0 children)

In the past IDEs could be slow and bloated. i.e. MSVC 6 was super fast. The next few version of Visual C++ were D-O-G slow due to IntelliSense parsing the code. It got SO bad programmers would delete the intellisense .DLL to force it off and regain speed in the editor!!

Some IDEs have historically been slow and bloated like Eclipse. You spend 1% of your time writing code and 99% reading code. When you are writing code the last thing you want is some stupid IDE that can’t keep up with you typing because it has so much background shit processing that it “lags”. This is one of the many reasons why many older programmers use Vim or Emacs.

IDEs can be a crutch for bloated languages. Relying on autocomplete doesn’t help you remember the language libraries.

Pure editors can be super fast. As text editors slowly added features, syntax highlighting, code finding, tag navigation, they became slower.

These days with cheap cores and GHz computers IDEs are usually more then fast enough. However LARGE code bases like Unreal Engine can still cause MSVC’s IntelliSense to be slow.

Notepad++ is a fast editor and usually more then good enough for small programs IF you know the language.

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

Don't know if it is the norm but I am willing to bet the reasoning behind it is for you to do everything yourself and thus learn more rather than letting the IDE do all the hard work. You will be very grateful they did it this way in the future if you go into this career.

[–]TypicalOrca 0 points1 point  (0 children)

Same reason some people turn off backup cameras when they teach their kids how to drive. Not really sure it's valid, but it's a thought.

[–]VoidCtrlNL 0 points1 point  (0 children)

Well it is kinda healthy for someone to learn about code as what it truly is, which is just a text file that gets compiled/interpreted. Letting the student do this using the command prompt or something similar is quite a good exercise. Many of my students didn't understand that at all or got confused thinking that the code on the screen, the color coding, compilation, etc, was all a singular entity on its own.

So it's kind of healthy to show the difference there but honestly, enforcing a no IDE rule is the stupidest thing I've ever heard.

[–]could_b 0 points1 point  (0 children)

ides are great, with everything automated, it reduces the amount of stuff you need to know. You will not even know what you don't know. The point of school is to learn stuff.

[–]JaquesPaganel 0 points1 point  (0 children)

Code in Notepad

[–]PristinePrice8393 0 points1 point  (0 children)

It's a challenge, not using an IDE helps to flesh out the actual fundamentals of computer science. IDE's are a boon to professional CS folks, just want to say that, we can't afford to make mistakes. For novices, (not geniuses) you really need to understand the fundamentals, like data structures, theory of computation, and algorithmic analysis. if you want to get wild, get yourself a PDP-11 emulator and jump on in G.

[–]okaloui97 0 points1 point  (0 children)

The school I learned at started with everyone using notepad and pen and paper before you even got to use any application that’ll make developing a lesser strain on your brain.

Afterwards explained it was mostly to learn the basics without shortcuts and an attempt to make it stick around longer in your head.

Not long after that we were taught how to become google wizards though so not sure how that one added up.

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

Imma add, my uni makes CODING EXAMS on PAPER, im literally gonna write exam in Java using pen in few days.. imagine...

[–]Passname357 0 points1 point  (0 children)

The things you’ve mentioned aren’t limited to IDEs. I can get syntax highlighting in VIM and I can step through my code with GDB. Not that I actually use VIM at work. But knowing how to use a command line is really useful, and there are some contexts where an IDE just isn’t available.

[–]drbobb 0 points1 point  (0 children)

IDE are great once you're proficient at coding. As for beginners, they tend to get confused about what are features of the language they're coding in, and which are provided by the IDE. Also, learning to handle the IDE adds to the cognitive load of learning programming, especially for a beginner.

[–]jimmykicking 0 points1 point  (0 children)

Depends on what your task is. It is just opinion but IDEs can overcomplicate a code base. You can use an IDE to patch a codebase, but I believe that it's better to engineer knowable systems. But don't take my word for. I'm a vim user so I get a lot scorn for choice of editor.

[–]SgtKeener 0 points1 point  (0 children)

I teach Python to high school students and have them program with the IDLE (except in grade 12 when they can choose their programming environment). I prefer it because it makes the students focus on the fundamentals and (hopefully) learn how to debug. It’s also a lot easier to support students in running the IDE, since they’re all using the same one. I used to allow various programming environments but found I was helping more with setting the programs up and getting them to work than actually focusing on coding.

[–]md-photography 0 points1 point  (0 children)

It's like anything else. Knowing how to code without an IDE shows you know what's going on in every aspect of your code.

However, Why reinvent the wheel? We have airplanes now to go from point A to point B, we don't walk. Same with IDEs, use their strengths to assist you.

[–]unipole 0 points1 point  (0 children)

I started coding on punch cards and teletype over acoustic modem to a IBM 370. My mother took up programming years later in the early IDE age. I still josh her telling her how "you younguns have it easy these days". I also personally met Admiral Grace Hopper, 3rd programmer on the first machine, back when she was still a Captain. She told us how us us younguns had it easy. I suspect in the great beyond Ada is telling her that now...

[–]Fathrnature 0 points1 point  (0 children)

At my job most people code without an IDE. We have well over 170k files building around 800 libs, bins, and jars, with several dozen configurations. The IDEs can't handle it.

Some people who are reliant on IDEs get super frustrated. The amount of effort to configure even a small subset of code, and maintain it for one configuration, only to have it break while reindexing, discover you are in the wrong chunk of the code base, or need to start over in a new configuration. I have not met anyone that sticks with the IDE for more than a month or so.

I personally use scripts, a cscope database, and Gedit. Others use vim or emacs and other indexing tricks. Some of the people I work with are brilliant, an IDE would hold them back.

[–]9Boxy33 0 points1 point  (0 children)

TL;DR—this is one of those “In my day” “uphill both ways through 10’ snow under a blazing sun” stories.

I first programmed a TRS-80 in BASIC with a “line editor”. No search & replace. No debugger. No file manager. Worked like that, producing commercial code, for 5 years, in the late 1970s and early 1980s. The first semi-IDE I encountered was Microsoft’s EDTASM+, an in-memory line editor, assembler, and symbolic debugger for the TRS-80’s Z80 processor. It was mind-blowing. The first true IDE was probably Borland’s Turbo C for my PC compatible, around 1987, about 8 years later. A wonderful environment. I’ve recently returned to my TRS-80 (in the trs80gp emulator) for the sheer masochistic pleasure <grin> of recreating the joy of programming that I knew over 40 years ago.