|
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.
|
|
|
|
|
of the Visual kind. It hides enough low level stuff and provides anough controls on its own that the student can, in the beginning, use only their own logic to solve problems. It also enables the use of objects, acclimating the student to Object.Method and Object.Property syntax.
After a year or two (consider that I started coding at school at 16, as I chose a technical high school) switching to C becomes easier, especially if used in conjunction with hardware platforms like Arduino or similar. C is still important because, on the other hand, hides NOTHING and is a good complementary to Computer Architecture and OS lectures.
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 everyone suggest BASIC to start with.
The reason is because most programm-parts are more or less like a spoken sentence and that makes (my opinion) it much easier. If you once understand the Framework it is easy to switch to C# (for example).
|
|
|
|
|
I would click on several.
I agree with the comment below about teaching first how to "think computer wise".
I partially agree with Java, but I would not specially say basic. Maybe C#?
But once the people get practice with the algorithm and the "how computer thinks", I would send them to program PLCs for a while, so they really have to learn how to come with creative solutions out of limited resources.
My senior always tells me how refreshing is to brainstorm with me, because I see things so differently (I was almost 10 years in industry automation with PLC and Robot-arms) and come with ideas that he would have never thought about and are actually way simpler than what he would have done.
I don't say people would have to get the same path than me, but I do think that just a year of professional automation can really improve the way one approaches the software development.
After that... programming at will.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Quote: I don't say people would have to get the same path than me, but I do think that just a year of professional automation can really improve the way one approaches the software development.
Hi Nelek,
or the other way round ...
My Profession is also Industrial Automation and I must say that the Knowledge about PC-Programming improved my PLC-Programms very much.
|
|
|
|
|
Pay attention to the whole text... I said to start with PC, then PLC (and then back to PC implied)
I started with C and a bit of assembly, then Borland C++ Builder, PICs and PALs, contact plans and Petri nets back then during college.
Then I was a while using Visual C++ 6.
After that the PLC / Robotic years
Then a couple of years in a weird mix of several things related to tech but not really developing.
Now back to C++ and started C# as junior developer to help with a software that interacts with PLCs (where I am the senior).
I enjoy our brainstorming sessions too, because my colleague is really open to new things and analyzes all my ideas. He has even discarded a couple of his to adopt my approaches. Our talks are really productive, interesting and funny at the same time.
Pity is... I have been assigned to another things for immediate / middle future
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
title says
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
|
What about rating each language ?
For beginner I would promote languages with least oddities to let student concentrate on learning programming, algorithms, not being caught on language weirdness.
Ok on Basic and Java.
No C/C++ because of manual memory management and pointers.
No Python because of indentation.
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
I love the indentation-defines-scope feature of Python
Cheers,
Vikram.
|
|
|
|
|
The problem is when the newbie copy/paste a piece of code in another position with another level of indentation.
Patrice
“Everything should be made as simple as possible, but no simpler.” Albert Einstein
|
|
|
|
|
Well now, that'll be an effective lesson on the dangers of copy/pasting code, won't it? Those are the kinds of valuable lessons that budding programmers must learn, and usually the hard way!
|
|
|
|