|
My first programming experience was when Beginners All-purpose Symbolic Image Code was really basic: At most 286 numeric variables (A-Z and A0-A9 .. Z0-Z9) and 26 string variables (A$-Z$).
Which reminds me of C.A.R. Hoare: "I don't know what the programming language of the year 2000 will look like, but I know it will be called FORTRAN". I actually read it when it was first published (it must have been in CACM or Sigplan Notices) in the discussions of which extensions to include in Fortran77. When I first encountered a Fortran 2003 program, I din't recognize the language at all - but it was called FORTRAN ...
|
|
|
|
|
What we need is a programming safety video:
homeland security knocking down their door and arresting them for going to the wrong website,
all the diseases they can get from the keyboard,
their bank account being cleaned out for reading the wrong email
....and other such items
scare em good so they wont want to learn, regardless of the language taught they'll only end up on CP and SO asking for people to do their homework anyway.
Leave programming to the nerds that have figured it out for themselves (and usually know more than the teacher anyway.)
Some people are good at sports, others are good at cooking, ... those that aren't should just stick to watching it on TV. Likewise programming. (Although would make for damn boring TV - except perhaps the episode on cracking pron site passwords and clearing your cache/history afterwards.)
Signature ready for installation. Please Reboot now.
|
|
|
|
|
Lopatir wrote: Leave programming to the nerds that have figured it out for themselves (and usually know more than the teacher anyway.)
This, Sir, is absolutely politically uncorrect and stands for the social injustice that's being done to women, the mentally challenged and all the others who are !nerds!
You must be sexist, elitist and thousands other sorts of *.ist, except perhaps terrorist, socialist or communist.
Thanks for saying it like this.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
Riddle me this
if politicians are liars and bs artists: does being "politically incorrect" mean telling the truth?
Signature ready for installation. Please Reboot now.
|
|
|
|
|
In my little world, yes.
In the real world it can also mean that someone is deliberately doing it to get ahead with his own agenda.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
CodeWraith wrote: This, Sir, is absolutely politically uncorrect and stands for the social injustice that's being done to women, the mentally challenged and all the others who are !nerds!
We have now reached the logical point of non-discrimination - even discrimination of the grounds of ability is forbidden.
EDIT: s/not/now/ (damned autocomplete )
Ad astra - both ways!
modified 2-May-18 11:15am.
|
|
|
|
|
Discrimination certainly is not acceptable, but creating an illusion for someone who beyond any doubt has not the ability in question is almost just as cruel and does not end well.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
What we need is a completely new paradigm for programming. We're still using constructs created in the 1950's based on human labor workflow processes created in the 1800's based on language constructs created thousands of years ago that are themselves poor at communicating between ourselves and even worse at communicating to machines.
BillWoodruff wrote: Someone who has no idea of asynchronous user-action driven event-handling in visual user interfaces ?
You could start with real life. Whatever the language is, everything should be asynchronous, event driven, and visual.
And we really need to get away from the linear and monolithic workflow paradigm of do a, then b with result of a, then c with result of b, etc., and into a data-driven agent based paradigm: "oh, I have foo that I know how to convert to a bar."
|
|
|
|
|
Marc Clifton wrote: And we really need to get away from the linear and monolithic workflow paradigm of do a, then b with result of a, then c with result of b, etc., and into a data-driven agent based paradigm: "oh, I have foo that I know how to convert to a bar." Do we? That may solve some of your problems and opens new cans of worms for many others.
No many sorts of 'bysomething-driven' paradigms we invent, we will always trade one complication for another. Also, complexity does not magically go away. You can only choose at which end you want to deal with it. If you choose well, the disadvantages will not matter to your application, but that does not make your choice a silver bullet.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
CodeWraith wrote: we will always trade one complication for another.
I totally agree. In a distributed computing, real time, sharded data world though, the old "a -> b -> c" workflow pattern really seems not just archaic but untenable, IMO.
|
|
|
|
|
As if every algorithm lends itself to parallel processing as, let's say, raytracing. Ask Henry Ford what to do when you have a strictly linear task at hand.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.
|
|
|
|
|
CodeWraith wrote: Ask Henry Ford what to do when you have a strictly linear task at hand.
You create a hundred work threads, each one does one small operation and passes the work on to the next worker, maximizing each worker's effort and minimizing the time it's waiting to do work. In other words, an assembly line.
|
|
|
|
|
And that Marc, is the CORRECT ANSWER.
With response to those who try to turn this into a discrimination argument.
NO, ok... just NO.
There's nothing discriminating about what's been said. I know for a fact, that I'm no good at fixing car engines, even if I do know the basics of how they work, and I'll call myself out for that, does that mean I'm discriminating myself? or other folks who don't know how to fix a car engine?
Not at all... What I'm doing is telling the truth, and that's the problem with a huge chunk of society these days, they CAN'T HANDLE THE TRUTH.
A large chunk of folks out there have been brought up to believe their something special (I think the other term I've heard is 'snowflakes'), when their not, and it's simply because parents and peers have praised them for all the wrong reasons.
Can anyone be a programmer? Yes absolutely they can, but will everyone succeed? no they won't ant that's where the difference is.
Many of the entrants come into the industry, because they've been conditioned from being little to believe their I.T geniuses, simply because they can run rings around their parents when it comes to tablets, phones, microwaves and anything else electrical.
The fact of the matter however is this, what there doing is just using the device, their not geniuses, their not the next generation of S**t hot start-up developer, and it's certainly not going to fall into their lap for them, which is what many think.
Their brought up believing that they have these awesome I.T super powers, and as a result they walk out of initial education with this belief that anything and everything coding, software dev, I.T is easily withing their grasp without having to work for it.
Then when they get into a position they cry fowl because they have to start at the bottom, or because it's too hard, this was NOT WHAT they signed up for.
What we need to do is to stop over inflating ego's, we need to train future developer correctly, and we need to make it clear, that programming (Like any other job on the planet) is not the job for everyone.
We need to encourage them to try, of that I have no argument, but we also need to stop stringing them along, and when we get to the point where it's obvious they reached sink or swim point, we need to help them make the tough decisions.
Ok, rant's over now anyway
This is a subject that Iv'e been getting quite vocal about recently, beacuse far to many people are trying to twist it into something it's not.
Simply: We have bad programmers because we've trained them and encouraged them to be that way, all of us who are still here, and who understand this industry need to be doing better, and that starts by telling the truth, even if the truth is "Politically UnCorrect", or hurts people to hear it.
|
|
|
|
|
Marc Clifton wrote: You could start with real life. Whatever the language is, everything should be asynchronous, event driven, and visual. Nope. There are many applications that require none of the three, and it would be detrimental to impose those constraints. Real life computer problems include those where the workflow IS monolithic and linear.
|
|
|
|
|
BryanFazekas wrote: There are many applications that require none of the three, and it would be detrimental to impose those constraints.
Such as? It's a serious question. I've been writing software for 30+ years and I can't think of a scenario where an agent-based data driven environment wouldn't have been better.
|
|
|
|
|
Marc Clifton wrote: Such as? Finance. There's a tremendous amount of nightly processing performed in connection with money transfers. Among the reasons for not doing direct transfers is fraud detection and prevention.
Driver license, vehicle registration & title. The datasets are vast, as it's so difficult to retire records due to the intricate inter-connections.
I don't see any simple answers in computing. Pick a paradigm -- someone can find a real-world counter-example where that paradigm isn't the answer. IMO we're better off having a variety of tools, and letting the problem influence the tools chosen to develop the solution.
|
|
|
|
|
It would be a smoking hot language in Jamaica and Colorado
|
|
|
|
|
sounds a bit like you want to bring back Visual Basic.
Every day, thousands of innocent plants are killed by vegetarians.
Help end the violence EAT BACON
|
|
|
|
|
BillWoodruff wrote: Perhaps we need a "dumbed-down" version of C#, call it "CBlunt" ?
No generics, or lambdas, or all that other fancy stuff we love religiously
Microsoft have already done it, they called it .net 1.1
|
|
|
|
|
I imagine M Blunt would be more popular.
|
|
|
|
|
All this pattern mania, from my anecdotal work experience, seems to be a disease mostly afflicting Java and Web developer.
Therefore I suggest get away from those sanity!
|
|
|
|
|
Just teach people with C, slowly force them to do OOP with C++, then throw them into Full Stack Web Development and watch them gawk at how nobody knows how anything about anything works.
|
|
|
|
|
Bill,
We have had a lot of paradigm shifts in programming. I cut my teeth on BASIC and assembly in the early 80s while in High School. I have programmed in over 13 dialects of BASIC. The most powerful was BasicPlus and BasicPlus2 (for the PDP/11). These had simple system function calls that let you do EVERYTHING, and all the core programming for the utilities of the operating system were coded in basic.
We had subroutines, not functions. It was compiled line by line as you hit enter.
I say that because you are not running into languages ruining programmers. You are running into languages setting people up to learn a paradigm. If a programmer is supposed to program a machine to do useful stuff... Then it is programming.
But we went through a few shifts. Procedures/Functions (Abstraction). Structs/Types/Objects. OOP. Event driven programming. Asynchronous Programming. And now OOP Library Programming (.NET in my mind).
Those are wildly different skill sets. All programmers need to solve problems and express them in code. 2 Great programmers will express the same program differently. Even more so when Libraries are used, specifically different ones are used.
Finally, the volume of "read" code impacts a programmer. I literally read EVERY SINGLE LINE of BASICPlus code that came with the operating system. Every program. Beginning to end. (I patched many of them to create some useful backdoors, too, LOL).
Thankfully I was reading COMPLEX code that was well organized. Written by professionals.
Today the problem is that everyone CUTS and PASTES, and there is so much CRAP code that everyone can easily find and read, that they have a low water mark for what is acceptable. This is one reason why code reviews are the backbone for the teams I work with. Code quality matters to everyone.
Therefore, while you believe that the language is impacting the developer and training them the wrong way, I would disagree. The programming paradigm they are starting from is wrong, and the examples they are being taught to program against are often too trivial.
While all programmers should learn the basics in a constrained fashion (gain basic understanding through doing). I actually think that programmers should be trained by actually READING, commenting, reviewing, and modifying really large, realistic programs.
And if that scares people, it should. Because that's what we expect them to do at work, when they are potentially fresh out of college where they have almost NEVER had to work with anyone elses code. Literally a condition that will not exist in reality.
Honestly, todays computer science classes would be better off interspersing the theory classes with a light weight programming language, and making the students take OpenSource software and learn how to modify it, and fix certain features of it. Real systems. Complex Systems.
Instead we teach them to Cut, Paste, and Hack through the problem.
I just don't believe I would blame the language, although asking someone to change from the ONLY ONE language they have ever used (Non OOP, Non Event Driven, for example) and then change paradigms too is way too much to ask of most people... Unless you are willing to spend serious time helping them to relearn...
|
|
|
|
|
This new one feels fine - but is a little noisy - but it's driving me round the bend!
The old one was a Logitech Media Keyboard, and the buttons above the cursor keys were arranged like this:
INS (shared with Scroll Lock on the function keys row)
HOME END
D PG UP
E
L PG DN And the new one is the old traditional:
INS HOME PG UP
DEL END PG DN And I don't look at my keyboard while I type, so I keep toggling Insert mode when I try to go to the beginning of the line, pasting when I want to highlight a row, page down when I want the end of a line, etc.
I'd forgotten just how long it took me to get used to the Logitech layout, and how much that annoyed to start with...
Any of you met this yourself?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
I will not use a noisy keyboard. ever.
And since you really can't (not supposed to) take them out of the box and test them, it can be a gamble.
I try to research first online the best I can, but that is not always reliable either.
I am currently using a Logitech K120 (simple keyboard) and it was moderately noisy, but is starting to get worse - new one in the future for sure.
[^]
|
|
|
|
|