As are many interviews. Middle school up through my first year of college my focus was art and I took the absolute minimum of math possible. Then I completed a degree in psychology and then at 25 I started a second degree in CS in a program I only later learned was geared towards Ph.d and life long research which is math heavy. That about broke me. And I was kind of pissed at the time to learn that other programs were more applied and less theoretical but in retrospect I’m glad for the theory. It has helped me move smoothly between many languages, platforms and environments with a lot less grief than others that just know one way of doing things.
It really depends on what you are building and who it is for. I’ve worked on everything from single use scripts to highly available services that were under contract to be up 9 nines. My current service only needs to meet 5 nines so things are a bit less stressful.
Agreed. Just because our hands are not greasy or we are not covered in sawdust people think we are not blue collar. We build stuff for money. The people that pay are always looking for ways to automate and save money. Eventually we will be as useful as a type press operator.
Agreed. it’s easy to get started and I think everyone should give it a try because one it can be be useful and two to demystify it. But like any crafting you start off simple and then increase the complexity over time. How far you take it is up to you.
It really is. Ive spent a fair amount of time on both sides of the interview table and it’s always frustrating.
You say that like it’s bad. So impressive to me.
It’s impossible to know everything across all OS’s, all languages, all platforms from the bare hardware up to the UI. I tend to be a generalist and have worked on a diverse set of projects but that is at the cost of depth of knowledge. Sometimes that really hurts in interviews. Having deep knowledge in one area is more demonstrable than my ability to jump quickly between languages and platforms. But once I land a job my managers love me because they can throw most anything at me and I will figure it out. Although right now I am trying to fine tune some SQL and I can tell that a good DBA would laugh at my efforts. Regardless I have taken a bulk loading process that took over a week to import a few hundred thousand records and now I can import 3 million records in about 11 hours. There are some areas I didn’t get to this iteration that have big problems. I’m hoping next pass to fix them and halve the time or better.
That’s true of so much. A lot of the technologist/technician jobs, plus biology and chemistry,* plus all those “soft” sciences like sociology, anthropology, psychology, etc that the brogrammers think are “easy” and are barely worth minimum wage. We’re not even talking about music, art, literature, etc, which require insane amounts of devotion to the craft. All the arts and sciences, plus tech, are not easy even if they aren’t math intensive.
However, it’s the brogrammers who claim that women can’t do programming because math, when programming doesn’t even involve math. It’s technology, not math or science or even engineering. It’s like being a machinist, only less manly
*only according to the brogrammers
This doesn’t really surprise me. Once one understands how programming languages work, and has a feel for the basic design patterns used in software architecture, the rest is just syntax. Someone’s code will be a little slicker looking if they only focus on one programming language, but other than that, the language doesn’t matter that much. The only real stumbling block I see is if someone is used to one set of tinkertoys and then gets moved over to another. If they’re a competent software person, they should be able to adapt to the new set of tinkertoys with minimal interruption, but maybe there will be a learning curve.
I design signal processing algorithms. I wouldn’t go as far to say as I have someone else compile my code for me, but I don’t really do the widgety stuff that the software guys live for. I can write mathematical/scientific code with the best of them though, and know enough about software engineering design patterns to be dangerous.
Right, I’ll compile stuff on my own, but I’m super unlikely to screw around with a Makefile. I like the software design stuff, if only because I want to increase the maintainability of software. Academia doesn’t reward software development super well, so anything we can do to make code that is functional and won’t have to be rewritten over and over with changing libraries, the better.
There is a somewhat amusing article about all this here:
I do about 65wpm. Could you rate that on the cuteness scale?
In the 60s programmers were not allowed near keyboards. Analysts were business specialists who designed with diagrams (I still have at least one of my old templates). Their work went to the programmers who converted it into COBOL, ALGOL etc. on hand sheets. These went to the punchers who produced cards or tape. At the company I worked for as a student, there were two women who floated between analyst and programmer, a couple of analysts and several programmers. The only keyboards in the “Operations Research” department as it was called were on the typewriters of the typists who typed up the reports and letters of the analysts and programmers.
Preparation [for the computer] was regarded as a low level task, quite distinct from the intellectual activity of programming.
Hmm. I have time to write ~300 novels before I die.
That is, type them. I still need to spitball, and research, and edit, etc, so if 1/4 of my time writing is spent actually physically writing, that makes it 75 novels.
If I choose to focus on only one good novel instead of 75 crappy ones, I would only need to spend 2.5 hours a week working on my Great American Novel.
I think you can overstate how math-free programming is; it depends what you build. I know I’ve used trigonometry for rotating things, or things like polynomial fits and numerical integration for processing data. It’s probably fair to consider that as using programming for math rather than the other way around; of course you need math to build mathematical tools.
But I’ve also seen otherwise good programmers trip on things like aligning dates, where you need to add and subtract the right numbers. So I think you want to have some grip on at least basic algebra. It’s like in engineering – you are not actually going to need to know how to solve field equations, but if you remember E=IR and I=E/R as different formulae, it would help to learn more.
In any case, I’d guess the real mistake is that there is a very real connection between programming and math, but it’s in the theory. Looking at functions, abstracted objects, and algorithms is all pure math. But while it’s understood that theoretical physics and engineering take very different approaches, I don’t think so many understand that at all for computer science and the practice of programming. So you get a lot of people who look for the prerequisites of the wrong one.
That’s more rambling than I meant to add, sorry. Back to the main topic, apparently this has escalated to open abuse of women and minorities at google, because of course it has. That’s what the far right does these days.
I think it’s important to highlight how software routinely dumbs down math, language, workflow, … the fundamental nature of doing while using computers as a tool … meanwhile the broflake coder bubble puts itself on a pedestal. And their product keeps sucking.