On 28/09/2017 03:33, Stefan Ram wrote:
Larry Hudson <org...@yahoo.com> writes:
Hopefully NOT like this person...
<quote>
Since I teach nights at a local community college
....
a programmer who couldn't program
It is not clear what »this person« refers to:
Do you hope one is not like that teacher who
publicly is shaming one of his students, though
without actually giving the name of the student.
Or do you hope one is not like that student who
did not turn in the assignments?
The fact that programmers can't program is
known since the invention of the "FizzBuzz"
programmer test. But in the case of the student,
one actually can't know for sure whether he only
had problems with the /upgrade/ of his education,
but still can program in his everyday job.
So, what was the question? Quoted from earlier in
the same thread:
|The question is, what should a person "know" when hiring out
|as a programmer? What is 'know" and what should be "known"?
|Specifically with Python.
Some areas of knowledge follow, a programmer should not be
ignorant in all of them:
I can probably manage the following, even if I hate some of it or some
might be advanced:
- writing FizzBuzz
- writing GUI software [My own]
(Writing a GUI system or using one? I've done both and try and avoid GUI
completely if possible.)
- writing software to analyze text files
- writing software to generate images from data
- writing software to analyze images
- how to program operating systems via system calls
- algorithms and datastructures
- numerical mathematics
- how to write a recursive descent parser
- maths (how to transform to polar coordinates or
what the use of a fourier transformation is)
And I have little interest in most of this lot (my eyes glaze over just
reading some of these):
> - writing GUI software [Other people's]
> - writing software to analyze data bases
> - writing user interfaces for data bases
> - how to use operating systems
> - how to administer a computer
> - how to use the command languages of operating systems
> - how to use an editor well (e.g., vim or emacs)
> - how to use UN*X tools (grep, uniq, sed, ...)
> - regular expressions
> - a source management tool (like git)
> - design patterns
> - design by contract
> - OOA/OOD
> - the most important libraries for Python (standard and other)
> - data base design / normalization
> - style (e.g. "Clean Code" by Robert Martin, pep 8, ...)
> - refactors
> - software engineering
> - being able to read and write EBNF
> - software-project managemet (e.g. Agile, "Scrum")
> - computer science (complexity, NP, grammars, ...)
> - test (e.g., unit test), TDD
> - programming interviews (there are many books about this topic!)
> - Using a real Newsreader (not Google Groups)
> - common algorithms/heuristics for global optimization
> - common types of statistical analyses and neural networks
It seems the first group is more pure coding (and fun, a lot of it), and
the second is the usual lot of tools and technologies that programmers
seems to have to know about these days (and not so much fun).
--
bartc
--
https://mail.python.org/mailman/listinfo/python-list