State of Software Engineers 2019
hired.com
hired.com
>Global demand for blockchain engineers is up 517%
Was, you meant to say. It's dropping steeply. Also, 517% compared too what? Previously, barely anyone hiring, and now 5 in 10,000 positions mentioning blockchain?
>Search engineers in San Francisco are paid the most, earning $157K on average
WHAT? Search engineers? What is “search engineers”? And $157K in SF being the most? This is false. You probably meant to say "senior engineers in San Francisco are earning the most". I only know engineers in San Francisco earning (in base, not counting stock or bonus) above $157K. My sample size is small, but 20/20.
Compare this with the Levels.FYI report: Highest Paying Tech Companies of 2019[1]. You see how the top tech companies are paying over $200K for entry level engineers in SF, well above $400K for senior levels.
Who writes this report? Or does this reflect how e.g. some of the top roles - FAANG and other tech companies - steer clear from places like Hired.com?
Headline: "1/2 of programmers prefer to work at a company that does pair programming"
Actual Question: "If pair programming was a common practice at a company, would it affect your interest in working there?"
The headline suggests 1/2 people are explicitly choosing paired workplaces over solo; the question just says "is this something on your radar?" and is way more passive.
But good companies, with good developers and good hiring bars, will pay good salaries for you to do a good job. Averages and selection biases are abound here.
Granted, hired.com probably has a higher-level sample than something like glassdoor.
(biggest edit: engineer --> developer, cos we're mostly not engineers)
Well, I’m glad that it’s only half. Isn’t that neat?
I wish this meme of “company that does pair programming” would die a slow and agonizing death. Not everyone’s brain is wired for pair programming. I do plenty of presenting at work, where I share my screen and write code, Twitch-style, for an audience of coworkers. I do this in order to convey material to a captive audience, not as a baseline method of doing work. “Teaching” and “programming” are two non-overlapping activities for me, as the communications aspect tends to overtake most of my mental capacity, leaving only a precious few cycles for problem solving and creativity.
Any company that considers itself special enough to change how people work is not only delusional, but will also burn through good people who are neurologically different from the type that enjoys pair programming.
In short, flexibility is the name of the game.
Chess is a much wider problem domain. I can’t imagine anyone playing pair chess.
https://en.wikipedia.org/wiki/Bughouse_chess
I assume that's what he meant.
I think "pair programming" is now some nebulous term people use to mean "can you talk through your code issues with someone else?".
Maybe the problem is that you're approaching it as "teaching" instead of working in close collaboration with other engineers to achieve a better solution to a problem than what you could've come up with on your own? You might be a senior, but there's always something to learn in how someone else approaches or thinks about a problem, and you're depriving yourself of the chance of becoming a better programmer if you reject this outright.
Pair programming is not for everyone, nor everyplace or time. Like most programming techniques it has its pros and cons and should be considered before adoption in a team, or worse, being forced into adoption. But it certainly has tangible benefits in sharing knowledge within a team quickly and achieving optimal solutions in a more immediate way than, say, a code review would.
Actually $157k salary sounds plausible, it's in the range of base salary for L4 band which is the most common level at google AFAIK. Of course, there should be like an extra $100k in stocks and bonuses on top of it, and noone from FAANG cares about base salary figure alone.
Oh please god, no. Don't make it a trend.
"What’s your 10-year goal? - 36% just want to continue building cool things - 23% want to become a technology leader (SVP, CTO) - 19% want to start their own company - 15% want to be a product leader - 8% want to be able to retire"
Only 19% want to start their own company in 10 years??
A few years ago when I was working in a big bank, I had the impression that about 70% of my co-workers wanted to create their own company and 30% wanted to become managers.
People who wanted to start their own company has been a minority. Sounds cool to have your own company, but I think people realize it is really grueling work and encompasses more than engineering. 10 years seems like a long stretch for me tbh, I can't think past 1-2 years for my own. 2 years down the road, sure I would like to has released a product that a team can be built around.
It is also conflated by age/economics. Is it more younger than older or older than younger who want to start companies? Is it that people who have a safety net feel more comfortable starting a company vs people who don't have a safety net?
Has anyone talked about this or even tried to have this become a thing?
The alternative is having to tease this out during the ‘question time’ of interviews, or in rare circumstances having prior knowledge of the people you’ll be working with.
It seems really weird to Hate something you can easily make irrelevant to your life - maybe people mean they hate maintenance programming on old, cruddy code, of which there would be a lot of PHP - that's not really on the language though...
In case of BASIC, I think the source of the hate is mostly Dijkstra saying things like:
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
or: "teaching of BASIC should be rated as a criminal offence: it mutilates the mind beyond recovery."
Dijkstra is one of the ancient saints of computing, so people read this as gospel.
PHP is a more complex case. The language had (last I checked, which was years ago) legitimate issues. But on top of that, because of the LAMP stack, it enabled easy web development, which opened the floodgates for novices. Suddenly, you had an influx of people with no experience and little understanding, all writing production code and - more importantly - tutorials for each other. This was self-reinforcing, so there was a period in which your average PHP code base was a steaming pile of garbage, and educational resources Google led you to weren't any better. That time is, in my experience, the source of PHP hate.
Why no hate for Ruby or Python or other stacks? I think because they've managed to rein in their respective communities better (they actually had communities, not mobs), and perhaps also because PHP was where most mistakes of backend development were made - so newer stacks had the benefit of hindsight.
You can see the same pattern repeating now with hate of JavaScript. One of the big reasons is, again, the flood of inexperienced novices producing garbage code and tutorials for each other, creating noise that drowns out both good libraries and good educational material. All the mistakes of frontend development are being made as we speak.
(The other big source of hate is the fear of the mob expanding to encompass other areas than web development. In the LAMP stack days, no one really tried to code PHP for microcontrollers. But attempts at running JavaScript or even Node itself on microcontrollers abound. Or, see how Electron is sucking out not just your computing resources, but also the proverbial oxygen from the native app development room.)
> Dijkstra is one of the ancient saints of computing, so people read this as gospel.
Can confirm. Learned BASIC (a very limited subset) at age 7. GOTO was the second concept I learned after PRINT. Have not stopped using either and kinda wish Python had a goto (except that I've worked through what that would actually entail; not worth it). Strict adherence to Dijkstra's hobgoblins is considered harmful.
So PHP, easy to pick up, but once you grok it, you usually move to something else, then you just remember PHP as the language when you were a beginner, and therefore you look down on it.
Seeing the same with BASIC or other more, basic languages.
There's also a line of thinking that some languages (like Python) are both a great beginner language and simultaneously a bedrock language that should be a first choice for many advanced/complex problem spaces as well.
(As for what's (arguably) wrong with it, have a look at this talk[1] by Rasmus Lerdorf about its creation. He intended it as a quick and dirty templating system for C programs. Because it was never designed to be a programming language, but somehow organically grew into one, it lacks (in the eyes of some) the elegance of a purposefully designed language.)
There is a great deal of complexity on every single construct on the language, and there is not enough expressive power to create simple programs that do a lot of things.
At the late 90's and early 00's, there was a fashion of creating high level languages by adding very powerful framework into a very basic language. That makes for a beginner-only language that is easy to kinda-learn, but hard to create anything good. PHP is trying to evolve beyond this, but all the legacy does hold it back.