|
I am not sure about indentation in Python for absolute beginner.
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
I'm not sure for so much dependency / requirements you need in python for a beginner. See, C# you install Visual Studio and Go. Done. Python you'll need any IDE that allows it, plus the runtime (windows) to actually execute it, then maybe some libraries for graphical interface and other sources ... C#, if you don't go TOO deep, just a basic project in visual studio will use the necessary .Net libraries (System, System.Windows.Forms - older builds, or System.Core) without you need to touch it at all.
Still, would go old school PASCAL! Learn from something older and word up the evolution to see why things became what they are.
|
|
|
|
|
Sammuel Miranda wrote: See, C# you install Visual Studio and Go. Done. Python you'll need any IDE that allows it, plus the runtime (windows) to actually execute it
In actual fact (in my experience), the experience for installing VS and Python are similar, except that it's much faster and simpler for Python!
With VS you download the installer and, rather confusingly for a beginner, you choose from amongst the many, many workloads and options. Then you wait hours for it to download and install.
With Python, you download and install. It's there. It just works. You really do install and go. It even comes with its own simple IDE that is entirely adequate for learning Python.
|
|
|
|
|
I see. Well, i didn't have that experience, surelly, it's a bigger package for VS, so the download time is bigger, but it doesn't make it "more complicated" - it's just sit and wait for download (like any download anyone does for anything on the internet, depends on size and bandwidth); on the other hand, when you make your first project on C#, you just compile and run the EXE on client machine (imagine not only the project itself but also taking the "Hello World" the beginner did and running it to see it working).
The python script you can't just take any machine and double-click it, unless it has python dependencies on it; the EXE will just run in 90% of windows machines. Anyway, all of this is 1 time thing (install the IDE), it has nothing to do with the language and how friendly it is.
Once it's all set, is really all the same, VB, C#, Python, Java (not javascript), Pascal, Delphi ... in the end they're all Object Oriented languages, and all work kind of the same way - the one you take first will probably last until you get excited for some feature or library somewhere else.
modified 23-Mar-21 11:11am.
|
|
|
|
|
I don't think this is a problem for many people. Indeed, it might seem more natural than {everywhere}.
Also, almost all languages tend to be formatted with indentation for clarity and in that respect Python is no different. The fact that indentation in Python is significant just doesn't seem to me to matter to a beginner.
|
|
|
|
|
Because the survey options are so limited.
|
|
|
|
|
Because this site has a very MS/C# centric userbase, and a lot of people are voting for what would be easiest for them.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
Python would, reluctantly[1], probably be my goto for a generic programming language. It has a reputation of being easy to learn, and is widely used outside of core software engineering as a utility/glue language making it more likely the person could use it in the future even if their career is in something else.
But most people don't just come to it saying "I want to program", they have something more specific in mind. So for web, I'd start them with javascript. It's effectively unavoidable on the client side[2], and using node for the server means only needing to learn one programming language at first. If their interest was more hardware/EE related, probably Arduino's simplified new user language with the expectation that I'd probably end up having to handhold their way through C in the near/mid term future.
Any of those would effectively require me to learn whatever I'm mentoring the kid in; but having been doing this at various levels for about 25 years learning Python/Node/Modern C should be something I can do fast enough to keep up with a kid who's able to put 5-10x as much time into it. At least until they're far enough along that they don't need a lot of hand holding anyway.
[1] I strongly dislike some of elements of its language design, but that's a rant for another time and place.
[2] I'm not going to mess with more complex toolchains for anything else with a beginner; especially when 99% of examples are in JS.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
modified 22-Mar-21 13:39pm.
|
|
|
|
|
Need to get the basics first
ok, Im old school..
|
|
|
|
|
The first semester will be nothing but 0's and 1's, need to get those basics right
|
|
|
|
|
And enter it through a front panel, like on a PDP-8.
|
|
|
|
|
Most people seem to be voting for the language they are familiar with, so C# leads. But, think about it - you would recommend that to someone who has never coded before? With mandatory classes, static type system, compilation?
C++ is yet another level of insanity: even most professionals can't use it properly - giving it to high schoolers should be forbidden by law.
|
|
|
|
|
It isn't just a question about which is easiest.
C# has the added benefit of actual being popular out in the real world too. It's a useful language to have experience with, so why not start with it? I mean, the reason so many of us are so familiar with it is exactly because it's a good language in many aspects.
Although Java is very similar to C#, for me it is a pain to work with in regards to runtimes. So it's another level of understanding that a newbie would be better off not having to worry about.
You already said why C/C++ is not a good fit.
JavaScript would have been my second choice because it is very accessible. However, it has a lot of gotchas, and it can be difficult for newbies to identify where JS code is going wrong.
So, what did you vote for and why?
|
|
|
|
|
Python and Javascript are even more popular than C# and both are more appropriate for a beginner.
C# is popular in the world of Microsoft based enterprise applications, but that's not something high schoolers care for.
|
|
|
|
|
The only thing C# really has going for it is that it'd take no extra effort on my part to help the kid out. My answer makes it clear what I think of shifting the difficulty that way.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies.
-- Sarah Hoyt
|
|
|
|
|
I kind of expected C# to rank high since it's popular with CP. Agree that C++ as a first language for schools beggars belief.
So what did you select? If I had to guess, Python?
Cheers,
Vikram.
|
|
|
|
|
Correct, Python. Although, Basic could work as well. Or even Javascript.
|
|
|
|
|
It would not have been my first choice either.
I tried C# along with a handful of other languages when I was just starting out. C# seemed like a completely baffling mass of mysterious nouns that I didn't know how to tie together.
It was great once I knew how to interact with the framework, but until it clicked there was a lot of "I have a <thingy> now... cool, what is that and how does that relate to what I want to do?".
|
|
|
|
|
The idea is to give them some degree of gratification as the challenge grows. This is important, if for no other reason, than to keep them from posting on Q&A.
I may start by giving them the link to W3Schools. In particular because it allows "try it" and, in many cases, the ability to try it, modify it, and see what happens.
I recommend a progression: HTML -> CSS -> JavaScript -> PHP
Now I do worry, just a bit, that they'll enter a cul-de-sac with these untyped languages but I started with FORTRAN - no declarations of type required and implicit typing for INT vs. FLOAT - no case sensitivity, etc. If they really get fired up they'll probably want to move from WebDev to local applications (and all the power that opens up). If not - nothing lost.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
The Phix Programming Language[^] - then again I am somewhat biased...
FASM for easy install and a better understanding of how things actually work,
JavaScript for no install, dealing with silent failure, and avoiding the bad parts.
Fundamentally any three (at least three) that are wildly different will do - one low level, one C-based, and one not C-based.
Pete Lomax
|
|
|
|
|
C in the early days of my career, then C++ in the mid years then C# later that really allowed me to do the things I wanted to do.
|
|
|
|
|
Not because it's a great language, or it has everything you need to become a programmer, because it's a sh*t language.
But because you can open up Notepad, show some basics and get it up and running without having to download or install anything.
Lesson #2 would probably use C#, or any other decent language, that requires some more effort to get running.
|
|
|
|
|
I seem to be one of the very few who actually likes JS. I just really enjoy the flexibility of it. Sure, there are a lot of traps to fall into, and I have many times in the past, but once you learn them then it's all good.
It would be my second choice after C#. For me, the strongly typed nature of C# wins over the accessibility factor of JS. It's much easier to learn when you constantly have the IDE screaming at you that you did something wrong
|
|
|
|
|
musefan wrote: I just really enjoy the flexibility of it. Me too!
But I hate everything else about it, so all in all it gets a 2 out of 10
|
|
|
|
|
My problem with javascript isn't the language itself, but rather the ecosystem. You need so many dependencies (and so many of them mysterious and indirect, and constantly changing) in order to accomplish anything nontrivial. And you can rarely find useful answers to the questions that come up when something doesn't work the way you expect, instead you just get endless opinions about how you should be using X framework instead of Y library (or vice versa if you're already using X framework). I know it happens outside of javascript too, it just seems to me that it's much more common in that ecosystem.
|
|
|
|
|