Coding - the new Latin
-
Nagy Vilmos wrote:
So, buns at the ready, it's over to you guys...
It's simple. Ask a person to teach you what their thought process was, what information they used to make decisions, why they chose the particular implementation that they did, how they tested it, how it met the requirements. Most people can't explain the how and why of what they do. If they can, succinctly, clearly, and so that you truly understand what they did (even if you don't agree with it, the point is that you understand it) then you have someone with some good skills. Marc
Marc Clifton wrote:
Most people can't explain the how and why of what they do
Unless they're called Marc Clifton.
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
-
Marc Clifton wrote:
Most people can't explain the how and why of what they do
Unless they're called Marc Clifton.
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
Heh. I struggle with that too. It's my own measure of whether I know what I'm doing. :) Marc
-
Well I remember a course for Computer architecture with the x86 assembler... with pascal... and then C. Ask anyone these days on what language they learn coding they say Java or C#... Next thing you know your app is leaking memory like a broken dam.
Alberto Bar-Noy --------------- “The city’s central computer told you? R2D2, you know better than to trust a strange computer!” (C3PO)
When I studied CS it was all Java. But anyone who first learns to program while studying CS was never serious about it anyway. The first thing I learned was z80 assembly. (or TI BASIC if that counts[no] - I learned z80 assembly because TI BASIC is slow)
-
Nagy Vilmos wrote:
So, buns at the ready, it's over to you guys...
It's simple. Ask a person to teach you what their thought process was, what information they used to make decisions, why they chose the particular implementation that they did, how they tested it, how it met the requirements. Most people can't explain the how and why of what they do. If they can, succinctly, clearly, and so that you truly understand what they did (even if you don't agree with it, the point is that you understand it) then you have someone with some good skills. Marc
This is an excellent way to drive out requirements. If somebody can't explain a task in clear simple terms, they don't understand it sufficiently well to enable you to code it.
Forgive your enemies - it messes with their heads
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility
-
When I studied CS it was all Java. But anyone who first learns to program while studying CS was never serious about it anyway. The first thing I learned was z80 assembly. (or TI BASIC if that counts[no] - I learned z80 assembly because TI BASIC is slow)
C64 and C128 basic for me :)
Alberto Bar-Noy --------------- “The city’s central computer told you? R2D2, you know better than to trust a strange computer!” (C3PO)
-
Nagy Vilmos wrote:
So, buns at the ready, it's over to you guys...
It's simple. Ask a person to teach you what their thought process was, what information they used to make decisions, why they chose the particular implementation that they did, how they tested it, how it met the requirements. Most people can't explain the how and why of what they do. If they can, succinctly, clearly, and so that you truly understand what they did (even if you don't agree with it, the point is that you understand it) then you have someone with some good skills. Marc
I use the verbs method, if there is such a thing, I write what I want and the verbs in the sentences derive the basic and first draft of requirements... and then marketing comes along... ;P
Alberto Bar-Noy --------------- “The city’s central computer told you? R2D2, you know better than to trust a strange computer!” (C3PO)
-
This is an excellent way to drive out requirements. If somebody can't explain a task in clear simple terms, they don't understand it sufficiently well to enable you to code it.
Forgive your enemies - it messes with their heads
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility
Pete O'Hanlon wrote:
If somebody can't explain a task in clear simple terms, they don't understand it sufficiently well to enable you to code it.
Ye Gods, man! How do you get anything coded? :)
Be dogmatic, not thoughtful. It's easier, and you get bumper stickers.- Anon.
-
I use the verbs method, if there is such a thing, I write what I want and the verbs in the sentences derive the basic and first draft of requirements... and then marketing comes along... ;P
Alberto Bar-Noy --------------- “The city’s central computer told you? R2D2, you know better than to trust a strange computer!” (C3PO)
Alberto Bar-Noy wrote:
I write what I want and the verbs in the sentences derive the basic and first draft of requirements
Yes! I learned about that when reading a book by, I think, Grady Booch, on OOP. It's a great technique! Marc
-
When I studied CS it was all Java. But anyone who first learns to program while studying CS was never serious about it anyway. The first thing I learned was z80 assembly. (or TI BASIC if that counts[no] - I learned z80 assembly because TI BASIC is slow)
Does Logo count? Not sure what language I learned on my TI-83+, but I learned one of them at least. If not, then does QuickBasic count? Now that I think about it, I had lots of first programming languages. :)
Somebody in an online forum wrote:
INTJs never really joke. They make a point. The joke is just a gift wrapper.
-
Without wanting to get into a 'back in the day...' discussion, when I started out we were taught from the bottom up. CPU, ALU, buffers, memory access, tape I/O [none of the new-fangled disks for us]. A lot of early assignments were simple machine code tasks, but getting a right answer only garnered about 75% of the marks. The rest was for compact and efficient code. 25++ years on I still remember "The sooner you start coding, the later you'll finish."
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
Very true but remember 25 years ago coding was a much more confined affair, no internet less languages and such plus no OO or things to confused people who might not be able to grasp the concepts of coding.
James Binary Warrior.
-
Aunty says[^]:
The campaign to boost the teaching of computer skills - particularly coding - in schools is gathering force.
I'd like to see maths and language skill being taught fully and then IT on top of that. I really don't want a generation of noobs thinking they're 1337. So, buns at the ready, it's over to you guys... [edit] De-doofused post. You'd think after one oops, I'd chick my spoiling.
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
This is such BS. Coding is a psecific part of a particular engineering discipline. It shoes the utter ignorance of the goyt that they try to promote it. Why not promote welding? Stress analysis? Thermodynamics? Resonance theory? All these are specific parts of other engineering disciplines. Why not? Clearly this is BS, a govt playing at doing the right thing. Idiots.
============================== Nothing to say.
-
Pete O'Hanlon wrote:
If somebody can't explain a task in clear simple terms, they don't understand it sufficiently well to enable you to code it.
Ye Gods, man! How do you get anything coded? :)
Be dogmatic, not thoughtful. It's easier, and you get bumper stickers.- Anon.
We don't, we bill by the day. ;)
Forgive your enemies - it messes with their heads
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility
-
We don't, we bill by the day. ;)
Forgive your enemies - it messes with their heads
"Mind bleach! Send me mind bleach!" - Nagy Vilmos
My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility
-
Aunty says[^]:
The campaign to boost the teaching of computer skills - particularly coding - in schools is gathering force.
I'd like to see maths and language skill being taught fully and then IT on top of that. I really don't want a generation of noobs thinking they're 1337. So, buns at the ready, it's over to you guys... [edit] De-doofused post. You'd think after one oops, I'd chick my spoiling.
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
I've met some people like that...I'm at an engineering school it's required that everyone takes at least a basic programming course (mostly C++, there's also a Java class now and then), and I was working on an application for a grad student who thought because he had taken a couple of Java courses he knew everything about programming (more than the group of Comp Sci's I was in, all juniors or seniors). At one point he even told another member of the group: "You're programming wrong!"
-
C64 and C128 basic for me :)
Alberto Bar-Noy --------------- “The city’s central computer told you? R2D2, you know better than to trust a strange computer!” (C3PO)
Started with 8080 assembly on an Altair 8800 then moved to Z80 when I replaced the CPU with a Cromemco board. Did a fair bit of Z80 assembler on the C128 but never got ambitious enough to learn 6502 for the C64. It seemed so limiting.
I'm not a programmer but I play one at the office
-
Without wanting to get into a 'back in the day...' discussion, when I started out we were taught from the bottom up. CPU, ALU, buffers, memory access, tape I/O [none of the new-fangled disks for us]. A lot of early assignments were simple machine code tasks, but getting a right answer only garnered about 75% of the marks. The rest was for compact and efficient code. 25++ years on I still remember "The sooner you start coding, the later you'll finish."
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
I remember similar stuff, the first thing to understand was the units in the CPU, so how buffers were arranged etc, how memory and I/O was mapped etc - otherwise how you could create the most efficient assembler. We had to build our own 6502 based computers, basic but had to be done as part of the course.
-
I remember similar stuff, the first thing to understand was the units in the CPU, so how buffers were arranged etc, how memory and I/O was mapped etc - otherwise how you could create the most efficient assembler. We had to build our own 6502 based computers, basic but had to be done as part of the course.
Yes. I started out in a digital electronics course path where we built a 4-bit computer from discrete components (the only "Large-scale" IC we were allowed to use was a barrel shifter we used to make a simple adder). When I later switched to programming, I couldn't believe how LITTLE those people knew about the hardware they were using to execute their code. I think programming should not be taught until AFTER some basic understanding of how the hardware functions. Reminds me of people who have no clue how their car works and then get upset because the engine seizes with no oil in it (true story).
Owen
-
Started with 8080 assembly on an Altair 8800 then moved to Z80 when I replaced the CPU with a Cromemco board. Did a fair bit of Z80 assembler on the C128 but never got ambitious enough to learn 6502 for the C64. It seemed so limiting.
I'm not a programmer but I play one at the office
Lilith.C wrote:
Started with 8080 assembly
... I started with PDP-10 assembly, then went to 6502 followed by Z80. Then took a course - for FUN; didn't count toward degree - in VAX Assembler (Q-word fun!). Then I learned FORTRAN, then C, the Pascal, then (SHUDDER) COBOL. I don't think I did anything in BASIC until I had a job using HP computers running Rocky Mountain Basic. Fun memories. Thanks for the thread, etc...
-
Yes. I started out in a digital electronics course path where we built a 4-bit computer from discrete components (the only "Large-scale" IC we were allowed to use was a barrel shifter we used to make a simple adder). When I later switched to programming, I couldn't believe how LITTLE those people knew about the hardware they were using to execute their code. I think programming should not be taught until AFTER some basic understanding of how the hardware functions. Reminds me of people who have no clue how their car works and then get upset because the engine seizes with no oil in it (true story).
Owen
It's important to know both, but I don't think the order in which you learn them matters so much. If anything, learning about programming first is helpful because it sets in motion the construction of a completely new set of mental machinery, for solving problems in a systematic way which connects abstract and concrete concepts in a way the learner has probably never experienced before. How the hardware works is kind of arbitrary - you could have a computer implemented with bacteria or slime mold, or maybe Babbage's cogs and gears, but the language of problem solving, of algorithms, is the same. And after all, the hardware exists solely to facilitate the execution of programs. So showing a kid an IC board and telling them about the CPU, registers, how memory works, what interrupts are, how an adder or boolean gate is implemented... they're amazing things, but I honestly don't think they will have the same impact as (or before) the moment they "get" programming. Looking at the hardware and figuring out how it does something you do in software is a powerful experience. I say this from the perspective of someone who started programming before learning anything about hardware - from typing in the examples in the Commodore 64 user's manual, then examples from magazines, then graduating to STOS and then GFA Basic on the Atari ST, a couple of years before touching 68000 assembly language which roughly coincided with exposure to basic electronics and digital logic in school and books.
-
This is such BS. Coding is a psecific part of a particular engineering discipline. It shoes the utter ignorance of the goyt that they try to promote it. Why not promote welding? Stress analysis? Thermodynamics? Resonance theory? All these are specific parts of other engineering disciplines. Why not? Clearly this is BS, a govt playing at doing the right thing. Idiots.
============================== Nothing to say.
Erudite_Eric wrote:
This is such BS.
Coding is a psecific part of a particular engineering discipline.
It shoes the utter ignorance of the goyt that they try to promote it.
Why not promote welding? Stress analysis? Thermodynamics? Resonance theory?
All these are specific parts of other engineering disciplines. Why not?Couldn't disagree more really. I think everybody should learn how to program. It's not a specific part of a particular engineering discipline - it's a tool that can and should rightfully be used in almost every engineering (and statistical/financial/analytical discipline). What are the chances that a programmer/accountant/mechanic/immunologist might need to apply resonance theory or stress analysis? Practically zero. What are the chances that someone who applies resonance theory in their daily work might also benefit from programming (even it's just designing a prototype simulation model, setting something up in Matlab or R, etc)? Practically certain. ;) Apart from its wide-ranging usefulness, it's just a superb mental exercise in its own right, and it of course leads to very good computer literacy. Those are just some of the reasons why I'll be teaching my kids how to program, even if it's just moving an animated cat round the screen :laugh: