The option of spending a lifetime reading the Windows code in order to 'know what your machine is running'? it's such an old argument but no one ever talks about how fucking cumbersome is to read code, even in work itself, moreso outside of work, unpaid.
You know it's actually really important to be able to read code. Reading any code makes you a better developer, even old fortran which makes no sense, and has bad practices.
Do you? I've been thinking about this for rather a long time–not that that's any iron-clad guarantee as to how correct I am but it does tell you that it's not something I'm coming up with off the cuff. I'd be happy to elaborate. What in particular do you think I'm being short-sighted about? Note that I think that the business of philosophy is entirely compatible with computational methods, I just think that the claim that computer programming is equivalent to applied analytic philosophy† is one that makes no sense to me.
The main reason being, and I'll restate myself–philosophy is not concerned with all concepts, only a subset of them, those that are deemed to be philosophical concepts–what those are is another matter and a very very very interesting question in its own right. This is what differentiates philosophy from other fields that use the same cognitive techniques and methods, the same proscriptions and sensitivities‡ of which there are both many fields, many methods, and many pitfalls. How all the latter translates into software is one matter and is not up for debate here. What I am saying is that computer programming (as an activity, one that is done by a human to a computer) can deal with any concept and that makes it potentially much broader in scope than what philosopher's do, methodologically they can over time be made compatible–at the moment they are distant kin.
† i've made a best guess/good faith at what that's supposed to refer to
‡ what I mean by "cognitive techniques and methods, the same proscriptions and sensitivities" is the business of conceptual analysis and construction–learning about how concepts work and how we manipulate them mentally and how we communicate them, the practice of training oneself to to avoid errors in your thinking, learning about fallacies and applying them, learning to debate in good faith with yourself and others, learning about biases in human cognition, learning to spot these biases in ones own thoughts
For infra/systems/devops engineers, Avoid - they screen you via a Codility test and they expect you to have a 100% score for it, with a 60min time limit for two lengthy problems. Anything below 100% is not enough.
Testing infra engineers for algorithms is plain stupid, completely irrelevant and a total waste of time as it does not translate as a test for any other infra specific skill one might have (problem solving / analysis / troubleshooting / systems design / et cetera).
An important thing it has, is an actual source code layout in the readme,
something that is missing from nearly all open sourced projects, making it a hassle to map out the project and start reading them...
After seeing your comment I decided to click through and check out the readme. That's a great amount of documentation. Wish the codebases I work with would be so detailed.
The problem with code...is that there is such a big overhead between thinking/designing a solution and actually implementing it in code - as in unneeded trouble with coding, syntax, compilation, errors....and so on, and so on - as such, coding and source code per se are widely perceived as Work Produced, not easily sharable for Free.
Code, globally, needs to be abstracted, to the point that it can be far more damn simple to Write something and Execute it without the troubles of having to know libraries, syntax, language intricacies, and so on and so forth. There is such an absurd obsession with Coding in its current state that it makes it even harder to Change how code is written, to make it easier per se, to Abstract it even more whilst retaining flexibility and power - the less symbols the better, the less actual letters in code the better, the more grouping of code the better, the more Actual reuse of it the better.
Take Java, for example. It is widely the most popular complete Abomination of the computer science world. It's just obscenely hideous - having to write so many letters and words and syntax only to fill a flawed theory and logic behind it, it's just -Inefficient-.
Abstracting the way Code is and is written will be an actual evolution of computer science as a whole - reuse of code, ease of writing, easier sharing, less headaches, better products, more Meaningful time spent on code. Making people 'love' the current way of writing it just to turn them into code monkeys one day is just horrible and exploitative.
Programming is hard, but progress is being made. For example: I think Haskell is an order of magnitude easier to write than C++. It seems to me that programming languages are evolving to give programmers access to ever higher levels of abstraction.
The holy grail, I think, would be a kind of unification of programming language and mathematical notation, the kind of language in which the models of the Prime Radiant (fom Isaac Asimov's Foundation series) would be expressed. So far, I haven't seen a language that comes close to this ideal, but I think there are lots of people who have a similar vision and have tried to approach it in various ways. Haskell is capable of posessing some small fraction of the terseness and beauty of mathematical expressions, Gerald J Sussman's work in Scheme captures symbolic mathematics and physics beautifully and succinctly, and Stephen Wolfram has elegantly organized an incredible volume of mathematical knowlege in his Mathematica package.
I don't think we can completely eliminate the impedance mismatch between human creativity and computation, but certainly we're working on narrowing that chasm. I can't offer you any suggestions, but if you feel very passionate about it, there may be a project (possibly a thesis project) out there that you could get involved in.