Hacker News new | ask | show | jobs
by johnjohnsmith 2763 days ago
I'd like to offer a few decades of perspective on your claim.

I've been programming for 30+ years. When I sit down to code, most of the time I've thought through it before even typing and am ~99% confident I won't hit a roadblock. I've spent half my life mastering my programming skills.

BUT: I'm a high-level technical lead / product lead, so I only get to write code a few times a month and it is more for stress-release because I've mastered it (and because I am a mentor to / lead 30+ programmers and this gives me a chance to interact with them).

If I wrote code 100% of the time I'd being winging it 1% of the time. So in this regard you are correct.

However, because of how corporations work, once you've demonstrated proficiency at "junior level work" you move up to the next big challenge. Yes, that sounds pejorative, but coding is not hard compared to the next levels of competency: programming is junior level, software architecture is senior level, product roadmap is staff level, corporate direction is above that. Sorry if that hurts your butt, but knowing the latest JS framework or how to optimize your C++ is trench-work compared to convincing the CTO where your division should invest its R&D budget for the next 5 years.

Because there is no "school" for learning how to plan your company roadmap, you really do have to wing it and learn from experience. And since shit is changing so fast... well, sure there are basic principles studied is business (that sometimes are useless for strategy but are good for tactics)... but in tech, it very much is "wtf is going to happen next and is this the right choice." Sure there is an executive board, and vice presidents gunning for your role, but you REALLY are winging it at C-level unless you are in your 70's and have helmed multiple large companies.

So from a top's down view from higher-importance positions, winging it is simply part of the job.

5 comments

> However, because of how corporations work, once you've demonstrated proficiency at "junior level work" you move up to the next big challenge. Yes, that sounds pejorative, but coding is not hard compared to the next levels of competency: programming is junior level, software architecture is senior level, product roadmap is staff level, corporate direction is above that.

This viewpoint, that those jobs are harder, is just self-justification (either to themselves or to everyone else) for people higher up that list of their higher pay than those below.

I don't believe those skills are actually harder (nor easier, just different), or that you have to be good, e.g., at programming to be good at corporate direction.

What is, IMO, true, is that those skills do have larger impact (or at least, significantly more obvious impact), which is at least a reasonable justification for higher pay.

But don't pretend that being good at software architecture, corporate direction, etc, means that you're actually smarter than that person who's "just" a programmer.

I don't think they are implying that people on more junior levels are not at smart. I believe they are attempting to explain that as you go up higher people tend to be less competent due to a lack of experience and proper training tools.
> I believe they are attempting to explain that as you go up higher people tend to be less competent due to a lack of experience and proper training tools.

He's not saying higher-ups are less competent, he's saying winging it is inevitable and necessary at the C-level _because_ it is impossible to already have experience and proper training tools for the decisions one has to make.

Sites like this one (and especially the initial spirit behind them) are the result of programmers and programmer-like minds (“hackers”, if you will) just “winging” it and seeing what will happen if they’ll build them. The reddit’s founders’ decision to initially write it in Lisp or even Paul Graham’s decision to write this website in Arc is almost quintessentially “winging it”, no sane person should have picked the wingy Lisp or Lisp-like Arc over a non-wingy and easily “architecturable” platform like Struts (we’re talking about the years 2005-2006). The same goes for Zuckerberg using PHP to write Facebook as PHP is the most winging-like programming language ever.

What I’m trying to say it’s that winging it is good, it’s good to get lost in a bazaar, we don’t all need cathedrals.

I believe the phenomenon you're talking about is called "Peter principle" [1], which states that "people in a hierarchy tend to rise to their level of incompetence. In other words, an employee is promoted based on their success in previous jobs until they reach a level at which they are no longer competent".

[1] https://en.wikipedia.org/wiki/Peter_principle

edit: punctuation and wording

No, he's talking about something different. The Peter Principle makes the process sound totally dysfunctional because it assumes the employee will remain incompetent, while he suggests that a period of incompetence is necessary to learn how to do your job.
He didn't mention people being incompetent. Why do you say he's talking about the Peter principle? I can't see it.
The CTO you're convincing is winging it as well, so how much convincing do you actually need to do? How many C-levels have been convinced to blindly adopt ML/AI/Blockchain/TrendyThings?

If these folks really are winging it, that's code for "hey, we're dumb, come exploit us". It's where pomp and circumstance close deals rather than actually delivering something technically good. It's where things start turning into a social club but the salaries continue to climb.

Great perspective. My takeaway is that people today are still overall undereducated. Business skills and corporate strategy should be taught earlier, at the highschool levels, instead of requiring a dedicated MBA.
> Business skills and corporate strategy should be taught earlier, at the highschool levels, instead of requiring a dedicated MBA.

How would you teach corporate strategy in a way that’s simultaneously honest (and useful to the individual) and palatable?

Maybe if you limited yourself to strategy within coops, where the individual’s incentives really are aligned with the incentives of everyone else in the organization, or mid-level management, where you only have a certain category of power - but that’s less useful because coops aren’t so common and mid-level management is ultimately subjected to what the upper levels decide.

In the end, individuals with positions where they have to worry about “business skills” or “corporate strategy” don’t usually have incentives which are aligned with the people at other rungs on the ladder. If you teach corporate strategy in an honest fashion, a not-insignificant portion of your material will be how to effectively redirect money from other areas in the organization to yourself. Most of your students will see that at stealing.

Or maybe you don’t teach how to leverage these strategies, but just how to spot them in action?

Either way, K-12 is traditionally focused on skills that are more foundational and generally useful. Admittedly, that’s changing as some schools introduce things like CS courses, but usually these are electives and not part of the core curriculum.

If I were exposed to corporate strategy without having any business experience whatsoever that usually accompanies an MBA, the subject would go in one ear and out the other without registering one bit.

What really ought to be taught is personal finance and basic investing - those subjects can be molded into information for any age group.

It seems to me those domains lack a well-defined paradigm that can be taught in a easily digestible way in a classroom environment.

I imagine some of the known valuable skills can be taught to a certain degree. Problem-solving, learning how to learn, assessing opportunities, looking for inefficiencies, communication, telling a compelling narrative, and so on. But I don't think it is easy to teach those things in a highly effective manner, at least not in a short amount of time.