3 ms·
Because every option sucks for teaching. C/C++? Full of footguns. Java/C#? Too complicated for beginners. Pascal? Outdated. Etc. I personally prefer C to teac
by Al-Khwarizmi 2y ago
Because every option sucks for teaching.
C/C++? Full of footguns. Java/C#? Too complicated for beginners. Pascal? Outdated. Etc.
I personally prefer C to teach first-year CS students but just as the lesser evil. A good first programming language is sorely lacking.
(Note that I'm talking about the imperative programming paradigm. The debate on whether one should start with functional programming is outside the scope of this comment).
- Spivak 2y agoIt's weird you throw out Java because they are the teaching language. They're the stick everything else is measured against. CS101 is a sea of Eclipse. Having a programming environment where all the major structures are discoverable through menus is actually pretty useful.
- dvdkon 2y agoJava is popular as a first language, but I think it's just due to its (bygone?) general popularity. I don't think a language that forces you into a one-class-per-file mindset from day one has any business being used for teaching; students should start from the basics ("commands"/function calls, if, while, for, ...) and then discover what more complex concepts do within that framework. Java's tooling is nice, but frankly Turbo Pascal (or something at its level) is enough for beginners.
- eru 2y agoYou can teach imperative programming with OCaml or Racket, too. :) C is indeed pretty evil, though slightly less though with modern sanitisers, so you can get a better error message than just a segfault (or silently doing the wrong thing). Pascal isn't really more outdated than C. Especially if you use Delphi? Python is actually fine, you can get pretty far with just the standard library, and the libraries that you can install with your Linux distribution's package manager (eg via Pacman). I do agree that package management with Python is pretty bad out-of-the-box.
- bmitc 2y ago> Because every option sucks for teaching. The answer is really quite simple: F#
- moi2388 2y agoHow in the world is c# too complicated? Console app, top level statements, vs code. As easy as Python. Easier because your env isn’t messed up. If they can’t manage that they have no business doing data science or something similar to begin with
- cuddlyogre 2y agoYou sound like you have been doing this for way too long to know what it takes to teach beginners.
- neonsunset 2y agoNot for complete but for beginners lightly familiar with programming it is overall not difficult to teach the basics, often easier than to stubborn seniors who want to do it their way only :) var start = "commtext c00\">"; var end = "</div>"; using var http = new HttpClient(); var page = await http.GetStringAsync("https://news.ycombinator.com/item?id=41425416"); var commStart = page.IndexOf(start) + start.Length; var commEnd = page.IndexOf(end, commStart); Console.WriteLine(page[commStart..commEnd]); or var host = WebApplication .CreateBuilder() .Build(); host.MapGet("/", () => "Hello World"); host.Run("http://+:8080");
- moi2388 2y agoNot at all. I still teach interns and until 2 years ago complete beginners. I can teach them a console app with top level statements and have it running before they have installed a Python virtual environment.