|
1 in 8 responders here voted for C++.
WTAF????
|
|
|
|
|
C ain't bad as it can allow for programming based mostly on logic and if the course merges computer architecture well with programming it's doable.
The problems are:
1) It's not appealing. The only easy way to use it as a beginner is through command line interface, which is no longer the way to interact with software.
2) Even that has a terrible syntax, even if I prefer scanf to many input functions I do because I have a lot of experience both with scanf and with many other input methods (c++, bash, java, visualbasic, assembly). I remember scanf as being particularly obscure in the beginning.
Honestly a modern VB6 would be top notch in my opinion, VB.Net still holds a bit more complications than what I deem appropriate for a beginner's language.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
i would not hesitate to introduce c to an electrical engineer at the very beginning, but "for a high school student who's never coded before?"
probably basic, but to make things more industry oriented from start: python or javascript.
very few languages from the popular top 20 are problematic for first introduction. the most important thing is how the material is written. will they love it or hate it?
"How to Think Like a Computer Scientist, Learning with Python" is good for starters.
|
|
|
|
|
OK you don't like C/C++, what's your choice then?
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment
"Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst
"I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
|
|
|
|
|
I started in those languages (C++ then C) and ended up back home after my tour of the other languages. Scripting languages hadn't been a thing until I already made a couple videogames via the holy trinity (asm/C/C++)
It builds character (and oneness with the hardware)
|
|
|
|
|
That was the first language I learnt, in 1987.
Variable names not more than 6 letters long; Integers starting with IJKLMN and Floats starting with any other letter. Program statements between the 7th and 80th columns. Many more such rules, and the (in)famous GOTO statement.
|
|
|
|
|
Hi.
I learned it a school in 81 and I use it on PDP/11 . I add to write a fortran program to renumber the label use by Goto because labels were in numerical order at it was too diifcult to understand the Logic.
At that time computer has very few ressources. computers were stupid and programmers had to be clever , even with a 64kb limit for the size of the program. now , it is a bit the opposite. Today, i use c#.
Regards to all programmers in the world.
|
|
|
|
|
perhaps Fortran 77 would be a better idea -where the GOTO may be completely eliminated .
|
|
|
|
|
In some cases, you may need to stil use goto to avoid to have too many if conditions imbricated you can not use directly a return or an exit. We always need to do the best with the limited tools that we have.
I have some difficulties to maintain an application without gotos but there are more than 218 source files that contains very few rows. Goto are evil but Russin doll coding is an evil ( one you find a file , you llok inside and you discover that thelogic is in an other file and in that file , the same thing happens...)
|
|
|
|
|
I think it should be erased from memory by a superior being. I see many programmers still using idjt vrbl nms that make code unmaintainablem for no reason at all.
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|
|
FORTRAN was my second language. First was IBM System\360 Assembler.
I still have to deal with class names of 8 characters using special codes, because the author seemed to think from past experience that it was the proper way to name things. I am so done with backwards thinking.
|
|
|
|
|
To be clear, I really like C#. It can start off simple but can support complex programming needs.
BUT... C# is surely not the place to begin programming ab initio (nor is Javascript!). Basic or Python would surely be better options to get started.
|
|
|
|
|
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?
|
|
|
|