6 ms·
What are other good options for intro programming languages if not python?
by eachro 4y ago
What are other good options for intro programming languages if not python?
- jstx1 4y agoC, JavaScript, any other general purpose language as long as you have a good teacher. I think the importance of which language you pick first is really overrated.
- pletnes 4y agoI disagree, pick an interpreted language that doesn’t need compilers or other complicated setup. Python, javascript, something where there’s little friction to getting started, and which has a REPL. Pick a language that a friend or colleague can help you with, this is probably an even bigger advantage, if possible.
- jstx1 4y agoMy first language was C++ (a very C-like flavor of it) and I really appreciated it later on. A compiler isn't complicated setup (in fact in many cases it's easier than managing Python/JS dependencies). I really believe in giving people who are learning more credit that they can actually learn instead of trying to dumb things down for them. And I don't mean that JavaScript or Python are dumbed down, I think they're fine first languages too; my point is about generally trusting beginners to learn things instead of unnecessarily simplifying stuff.
- adam_arthur 4y agoLearning is driven by motivation. Motivation is diminished by unnecessary difficulty. Thus, learning via languages that are easier on the uptake will lead to better results. Memory management and type safety can easily be learned later on... the core essence of programming doesn't involve either of those. It's about defining and composing abstractions, which is language agnostic.
- Akronymus 4y agoLISP or Haskell IMO. But those require a vastly different approach to learning than C like languages.
- RangerScience 4y agoRuby :) The real question is finding a “learn to program” tutorial that you vibe with. Once you get the fundamental concepts down, it’s way easier to learn most other languages. After that, IMHO, it’s way more about community vibe and approach, since informs how libraries get written, etc etc
- zoomablemind 4y agoIt depends on the purpose of such intro. For utility programming, even Excel formulas should be a reasonable entry into programming. The formulas, the IF, the index propagation demonstrate the basic programming concepts. Once familiar with the logic of programming, the choice of language is not that critical. Python is ok, though, personally, I dislike the need for exact indents and often forget that colon... I find that REPL is rather a complication than a utility in the beginning. Keeping the text of the program in view yeilds better control over the intended logic. In that regard a compiled or a scripted language is not that much of a difference. In my experience, the hardest part to teach is the approach to decomposing a problem into logical steps. Well, that's the analysis part.
- GeorgeTirebiter 4y agoI think the best intro to computers is assembly language. My actual intro was Fortran for a few months, then IBM 1401 assembler for the next 4 years, as the limitations of fortran were obliterated when writing assembler. Assembler gets you to appreciate -- in your 'bones' -- what a computer really is, and how it really works. You can then see how so-called higher-level languages work after understand their foundation. Top assembly people generate DSLs for every problem domain, and have a hefty library of subroutines and ready macros. I still believe that, if you are good, really good, you'll do best in assembly. That is, you have the detailed machine knowledge, the proper mindset, the subroutines to do <whatever-is-commonly-needed>, and useful macros (which are a kind of specialized subroutine). Now. This is true for small machines, and x86 or 68k; but. With the rampant complexity in amd64+ archs, with ultra-complicated instruction sets, it's harder to know every instruction with exquisite detail to produce better assembly than the best C or (probably) Rust compilers. Still, even if you only use a subset of the instructions of amd64 or arm, you'll learn quite a bit how the machine actually 'does stuff'. And, if you really take to this sort of thing, there is a future for you in Embedded. Good Luck!
- GeorgeTirebiter 4y agoRemember: downvoting is for showing that the comment is not following HR rules. One doesn't downvote because one disagrees to a well-presented truthful argument. No, in that case, one replies: and begins a discussion. As usual, I stand by my comments, as they are my lived life experience. And, I believe they are quite accurate, and otherwise a thoughtful answer to the OPs question. Nobody asked, for example WHY was I writing assembly language for 4 years; but I'll tell anyway: I wrote a compiler for a Python-like language called "Simpletran". It pre-dates Python by several decades, but many of the original ideas in the early Pythons are there.
- wheelerof4te 4y agoLearn JavaScript if you want to build web applications and/or websites. Learn C if you want to do low-level programming. Learn Java if you want to torture yours...I mean, write and maintain enterprise applications. Yes, that.
- g42gregory 4y agoJust a small comment on JavaScript and web: it’s perfectly acceptable to build websites of arbitrary complexity by just using server programming, say in Python/Django/Flask and HTML5. I find HTML5 as a valid substitute for JavaScript. Not everything could be done in HTML5, but perhaps things that couldn’t be done, shouldn’t be done anyway.
- sesm 4y agoThere was a good ‘Programming Languages’ MOOC on Coursera from University of Washington. It used 3 languages in this order: Standard ML, Racket and Ruby.
- agumonkey 4y agoDid make a lot of newcomers go insane on the irc channel we used to chat. I think a HtDP based course with a scheme is still the best to learn to "program"
- 2143 4y agoI already have over 4 years of professional software engineering experience (mostly backend web development). Before that I've been coding as a hobby for like 8 years. I'm pretty good with C, python, and PHP, though I'm familiar with plenty of other languages. I also know a little bit of Haskell. For a person like me, is HTDP worth it? I had started with it previously but I found it a little boring. But I know the book is well regarded so I'm wondering if I should take another shot at it. Or should I go straight to SICP?
- agumonkey 4y agoOh no, HtDP is, in a way, for absolute beginners[0]. SICP has way more sophisticated topics, I think you'll learn more with it. One thing though, lots of exercises on real numbers (it was for Electrical Engineers at the time), some like it, some don't. Or you may try moocs (if they're still available): EPFL functional programming in scala (by M.Odersky) is great. University of Washington Programming Languages (by D. Grossman). There's also Brown University CS173 (related to Grossman) https://cs.brown.edu/courses/cs173/ https://cs.brown.edu/courses/cs173/ Hope you'll find something fun in this [0] It's value to me is that it doesn't bind to a paradigm, but innocently make people structure data and destructure it logically in a way that leads to obvious functions. It teaches pre-think rather than write-in-$language-then-suffer. Also being based on scheme opens your eyes to a very simple language (closures and lists).
- Qem 4y agoPharo.
- pjmlp 4y agoStructured Basic.