Readit News logoReadit News
Posted by u/vpaulus 3 years ago
Ask HN: Are authors of “how to be great developer” blogs great developers?
Every time I am reading blog posts about "how to become a great developer", or "what´s the difference between a good and a great developer", I am marvelling the self-confidence of the author. Or better to say: I am wondering if I should have better self-confidence too?

During my 20 years of work experience as a developer, I´ve never felt that I am a great. Neither good. Maybe good enough, or good-ish. And it depends of many factors. First, I always know some guys, who are better than me. One is coding quicker, the other does not need so much googling or checking documentations during work, the next one has better code structure, and so on.

I always had/have multiple leveled lists in my head, what I need to improve. To write tests. To change Js to Ts. To practice quicker typing. To create better snippets. To learn better focusing. I could continue the list...

I don´t think I can tag myself as "great" until the list is done. Do these bloggers?

adamgordonbell · 3 years ago
Some CEO's have executive coaches that they pay lots of money to. Are good executive coaches good CEOs? No, they are good executive coaches, but that's ok, because that is their job.

Are there executive coaches who are successful and yet give bad advice? Probably, but probably some excellent executive coaches learn to pattern match on problems and deliver a lot of value.

So, this is my long-winded way of saying advice can be valuable even if it comes from someone lacking the skill to use the advice. So, take advice with a grain of salt, realize much advice is autobiographical, but still, it can be valuable.

swyx · 3 years ago
this is what i came here to say (take with a grain of salt of course, because i also do developer advice).

Magnus Carlsen has a coach. Serena Williams has a coach. To some extent you really don't care whether your coach is themselves independently capable, you only care that they make you better. it could be a rubber duck, it could be a talking tree, it could be a blog on "how to be great developer".

that said, yeah some of the advice out there is definitely bullshit, some other advice works for some but not others. you have to sift through all that/keep an open mind to just find the advice that works for you.

P5fRxh5kUvp2th · 3 years ago
"Be wary of advice from people who suffer no consequences if that advice is wrong" - someone

If I'm a CEO, I'm going to take advice from people who are successful CEO's, then people who have been CEO's longer than I have, then my peers, THEN maybe everyone else. MAYBE. But doubtful.

Most of these "executive coach" positions are cheerleaders, and for sure cheerleaders have a purpose, but advice aint it.

It's one thing if we're talking about an investor who has watched many CEO's over the years, it's another if it's a dude who is paid to give soundbites.

roenxi · 3 years ago
In any field there are obvious mistakes that all the beginners make and are well understood. The message that beginners need to hear - "this is a common mistake, don't do it!" - can be farmed out to an adviser who doesn't understand the field.

In my experience, even having someone to repeat things I already know every so often can be a helpful form of advice.

cwilkes · 3 years ago
“Take the advice of other successful CEOs” … are those other CEOs working for you day to day? How are they giving advice tailored to your company’s needs that go beyond the typical “invest in your employees” line that everyone knows.

There’s a reason there are coaches as they can do the work full time and can offer better advice.

unmole · 3 years ago
What consequences does a CEO suffer if the advice that he gives other CEO's turns out to be wrong?
playing_colours · 3 years ago
I read the advice you quoted in Skin in the Game by Nassim Taleb.
numbsafari · 3 years ago
Importantly: a lot of advice is contextual. If you lack the context, then it’s just noise.

Part of what makes an executive coach any good is the relationships they develop so that they can offer relevant advice.

A lot of startup “advice” is like that. What people think matters probably didn’t, and what worked in one case probably won’t in yours. Context is king.

adamgordonbell · 3 years ago
Context is king. I like that.

So if someone is writing from experience similar to yours, it might be pretty valuable, but it will never be as context specific as having a coach would be. Same for friends who you know are a step or two ahead of you and who have the time to give you advice - it sounds like that would be super valuable as well.

lucideer · 3 years ago
There's two sides to this though:

> Are good executive coaches good CEOs? No

No, but what do executive coaches do / contribute to a CEO's day-to-day & are they good at executing on that specific domain in their own lives/careers - yes.

In the same vein:

1. are development bloggers knowledgeable about the subjects they write about but less talented at executing on those topics efficiently.

OR

2. are development bloggers both knowledgeable and effective in their chosen subject & also excellent time managers (prolific in both blogging and developing)

OR

3. are they bad

I think all 3 of the above are possible (though the 2nd is extremely rare, & the 3rd is likely pretty common).

viraptor · 3 years ago
Slight variation on this one: You can spot what great developers are doing even if you're not one of them. I may at the same time not think of some situation when writing code, but also notice that someone did catch it, that it's important and non-obvious, and that the comment they wrote about it is very thoughtful.
P5fRxh5kUvp2th · 3 years ago
You can spot SOME things great developers do, others you'll think are terrible ideas because you yourself are not a great developer.
Jaymz87 · 3 years ago
Or:

"those who can, do; those who can't, teach"

BeefWellington · 3 years ago
My take: I like the Bruce Lee quote:

   I fear not the man who has practiced 10,000 kicks once, 
   but I fear the man who has practiced one kick 10,000 times.
The people who blog about being great developers are largely bordering on snakeoil salesmen/women. I think the great devs are too busy writing code.

sshine · 3 years ago
I'd elaborate and endorse this view, but I'm too busy writing code.
TakeBlaster16 · 3 years ago
As a mediocre developer, I'll gladly endorse this view.
avg_dev · 3 years ago
This gave me a good chuckle.
dasil003 · 3 years ago
Depends on your criteria. If you are interested in the best solo developer it's probably true. But in software engineering the hardest part is working in teams. Building a large scale system too large to fit in anyone's head while still maintaining a reasonable degree of modularity and cohesion is very difficult and requires a degree of verbal and written communication that could translate very well to blogging.

More relevant is the low barrier to entry to blogging and Sturgeon's Law.

codazoda · 3 years ago
I write in order to understand and solidify a concept in my mind and so that I don’t have to remember it next time I face a similar problem. I used to do so publicly but I mostly write privately now.

Dead Comment

onion2k · 3 years ago
To practice quicker typing.

This specific one is something that baffles me. Development is all about thinking. You need to understand what you're building well in order to have any chance of making something that works and is bug-free. You need to spend time thinking of names that will make sense in 6 months. You need to organise things well. The actual act of typing things in is a tiny part of the whole process. If typing faster is improving your dev productivity then either you typed really slowly before, or you're not spending enough time thinking about what you're doing. I really don't understand why speed of text input is considered a useful metric on absolutely any level whatsoever. And I say that as someone who types quite fast and who knows their IDE well enough not to be reaching for a mouse every so often.

elefantastisch · 3 years ago
As someone who types quite fast, if you haven't watched someone who types 20-30 wpm, then you probably haven't seen what a hindrance it can be.

Yes, thinking is more important than typing, but after you've had a thought, you need to see it "in writing" and execute it to evaluate it and see if it was a good thought after all.

Fast typists can go through many more iterations of that process in the same amount of time.

It has often been remarked by writers that writing is thinking. That you don't even know what you think until you write it. There is something very fundamental to the thought process that comes from actually recording the thoughts and seeing them "in print".

A good typist (which I'll call 100 WPM, a point beyond which I diminishing returns make further improvement less important) can do the writing-is-thinking process 4x more in the same amount of clock time as a 25 WPM typist.

andsoitis · 3 years ago
> but after you've had a thought, you need to see it "in writing" and execute it to evaluate it and see if it was a good thought after all.

I don't know that that is the only way. For instance, when I have thoughts, I often:

- repeat them in my head from various angles, while pacing around the room

- jot down some key words as anchors

- draw a diagram or two; sometimes to visualize relationships, sometimes to map out individual elements of the thought

- etc.

Then, when I start writing, even then I don't start with full sentences. I think about overall organization so might outline and iterate on that a few times so that I can refine. Only then do I start writing full sentences and edit, edit, etc.

Joker_vD · 3 years ago
I've used to work with a guy who had... dyslexia, I think? Dysgraphia? Basically, he simply couldn't type without typos, although he seemed to do fine with reading. Well, he relied heavily on copy-pasting code snippets around, those sometimes being as small as a single keyword. Quite a sight to see, to be fair.

My point is, being able to type 100 WPM without typos is surely nice, and so is e.g. having good vision (or vision at all, for that matter), but it's not strictly necessary and can be worked around. Although, of course, if you can come into possession of those qualities reasonably cheaply then sure, go on and obtain them.

oh_my_goodness · 3 years ago
"A good typist (which I'll call 100 WPM, a point beyond which I diminishing returns make further improvement less important) can do the writing-is-thinking process 4x more in the same amount of clock time as a 25 WPM typist."

...if they spend all that type typing.

jmnicolas · 3 years ago
I type with 2 or 3 fingers and I usually have to look at my keyboard... but it doesn't slow my code, it's Intellisense (Visual Studio auto complete) that does the typing for me.
benreesman · 3 years ago
Typing well and being fast with the tools changes the code you end up with, not when you end up with the code. It drives the “activation energy” for trying a different approach, or fixing some structural flaw that’s on the bubble of being “good enough”.

People who can tear down and rebuild a piece of software quickly and fearlessly just try more things, just like mechanics who can rebuild an engine have usually have higher performance cars than the rest of us.

It is obviously not a substitute for thinking deeply, but it can be an aid to thinking deeply.

And outside of some rarified hyper-elite of Thompsons and Carmacks or something, thinking deeply is not a substitute for trying a lot of things.

Now time is finite, and learning to type properly or mastering your tools might not be the highest ROI at a given time, but this meme that “I can type faster than I think so I’m not bounded by typing” (which may not be your view, but you’ll agree is often said) is misleading bollocks that young hackers hear and often heed: which is setting them up to settle for less than their potential.

conductr · 3 years ago
Maybe just different styles and approaches and typing speed is a easy, obviously, and measurable metric to focus on but this sounds like brute force problem solving. I tend to prefer to build a mental model/plan such that once I start writing the first draft is probably within 90% of the final, some iteration taking place on that last 10%. But I don’t write and delete large swaths of code. This sounds like real time refactoring/lack of planning and completely erases any gain I’d get from being able to type twice as fast (I’m probably middle/average speed).

To use your mechanic analogy, the difference is the mechanic is confident in his abilities to tinker. The confidence is built on having a plan and some background knowledge. When he disassembles a carburetor he already knows the performance tweaks he’s going to make and how he’ll reassemble it. He doesn’t just start taking things apart with no plan, or start playing swapping on and off a handful of carburetors to see which performs best. He probably did his research and chose the carburetor/mod that was appropriate. It’s actually even more important with the tangible world because he has to plan and acquire the parts and tools before getting started or risk having a bricked vehicle for some period of time.

Non-mechanics know better than to tinker at all because they’ll likely break something they can’t figure out how to fix. So they might do low risk things like put high performance fluids in, or air filters, but they’ll never match up to the guys that have upgraded the mechanical systems.

Arisaka1 · 3 years ago
As a junior developer I once had a pair programming session with a more senior developer who was baffled that I don't rely on VS Code features like replace all, I don't copy-paste code from other sections of the application that roughly resemble the feature I'm building, etc.

So, while development is about thinking, delivery speed is always a factor, and they don't care if that speed comes from quick thinking, quick typing, quick replace all or quick copy-pasting.

mb7733 · 3 years ago
But copy & pasting or using IDE features is more about consistency than speed. I.e. making sure you really did replace _all_
P5fRxh5kUvp2th · 3 years ago
When someone looks at the keyboard they're not thinking about the problem, they're thinking about typing. They're engaging parts of their brain to do so that touch typists do not.

This means touch typists can think WHILE TYPING, giving them a distinct advantage.

davnicwil · 3 years ago
I guess one aspect here - and it will depend on the individual obviously - is thinking through solutions by coding them. As opposed to doodling or whiteboarding, for instance.

If you can do that faster, then perhaps you really can get gains. The typing speed is about iterating quicker to the best solution with draft code, not about literal speed of typing the best solution's code.

yourapostasy · 3 years ago
> The actual act of typing things in is a tiny* part of the whole process.*

A tiny part of cutting actual code, and a big part of communicating and documenting that code to others. Even for a solo developer, you will always be communicating with your future self unless you are blessed with the kind of eidetic memory that can recall mindstates.

Software engineering today is both an intensely individualized experience (flow state is still A Thing for example) and a team sport heavily reliant upon lots of communicating between people in many different roles. Written communication is a big lever that propels you beyond verbal reach. I frequently see software developers who type slower than an average range of 40-60 wpm produce barely intelligible documentation, actively shirk ticket-based processes that involve much typing, and rarely if ever present their ideas to others in written form.

This is usually a hindrance to their careers. I keep hoping the parsimony of typing speed would act as a forcing function and be made up by concise, elegant written communication but alas, I have yet to run across such an example.

agentultra · 3 years ago
As an avid writer/thinker I do tend to write a lot of software on paper first.

But not all! If I am making an arcade game I might jot down the basic idea at most. I spend the majority of my time in a rapid-prototyping mode. I don’t write good code with all of my usual rigour; I write the first thing that could possibly work with the least amount of code possible. In this kind of prototyping mode I am constantly evaluating something you can’t really specify on paper: does it feel good, is it fun?

However I generally throw away that kind of code once I am done with it and rewrite it using my usual methods.

It is useful to practice “coding fast” for that reason. I had spent a good year or so practicing it as a skill. It can be useful. And being able to type fast can help reduce those iteration cycles. The goal is to get from idea to something that works and resembles the idea as quickly as possible.

cryptos · 3 years ago
The only argument why fast typing could be important that comes to my mind is that you're less distracted (from thinking) if you can type fast without looking at your keyboard.

If you're payed by lines of code, than it's a different story, of course ;-)

fxtentacle · 3 years ago
For complex programs, you won't be able to keep all relevant aspects in short term memory. So the only option is to quickly write down everything.

I see fast typing not as a programming advantage, but as a thinking advantage.

nobodyandproud · 3 years ago
Good engineers write not just code, but good documentation and technical write-ups explaining decisions and the pros/cons of different choices (RFCs).

If your typing skills are sub-par, that’s just one more stumbling block.

braingenious · 3 years ago
There appears to be a formula to make it to the front page of HN. I haven’t entirely nailed down the specifics, but it’s nearly exclusively self-congratulatory drivel about how to adapt to the world/industry as an individual that’s Way Smarter Than Everybody Else.

I don’t know who these people are that write self help content that is optimized for making it to the front page of HN but if I had to bet, I would bet that their core competency is blog writing and appealing to developers, not coding.

quadrifoliate · 3 years ago
I think it's up to you to determine what you want to do, but I see most of the "the real difference between great and good {developers, managers}" sort of posts as overconfident and self-promotional. In our (America-centric tech) culture that's soaked in cheerleading and self-promotion, this might work for a lot of people. It doesn't work for me.

I cringe every time I see one of these posts. To be honest, I may even grudgingly bookmark it sometimes. Maybe I should be thinking more about ten ways to become a great developer, not just a good one!

But the truth is that I will probably never read it, and I certainly won't return to it or link it anywhere. I mean, the embarrassment! It's like telling your friend they should read the "10 Ways to Lose Weight Fast" articles in some grocery store checkout line magazine trash.

I'm an old-fashioned craftsperson that prefers either thoughtful and reasonable reflection about things that have worked out; or flat out angry rants about things that haven't.

And maybe this is because...real life works that way too? If you're talking to someone about your successes, you're probably not going "Here's 10 ways to become a great developer. Number 1..." – you're probably incorporating a lot of caveats into your suggestions, and emphasizing the specific context that they are made in. Meanwhile, about failures or things that didn't work out, you're probably going "Oh my god, I need a couple drinks before I can even begin to talk about how [terrible boss] single-handedly sunk our project".

In summary – You do you. But I prefer to read people who write like they talk.

Uptrenda · 3 years ago
It's honestly like 99% marketing and 1% skill. The other day I saw a Vlog from a YouTube developer advocating to avoid else statements completely because it leads to 'cleaner code.' It will 'force you to make all your intentions clear.' But it also means duplicating a negative expression for every boolean that is to have an else which is tedious, unnecessary, and just ridiculous. This is the kind of garbage being given out for advice.

Most of the stuff I see is really just fortune cookie style bs that sounds useful but isn't. Blogs are actually a horrible source to learn from because they lack a systematized comprehensive framework for knowledge. I still love books or trying things out myself.

ajkjk · 3 years ago
No, god.

There are good developers out there writing blogs. You can tell how good they are by how intelligent and insightful their thoughts are. Most coding blogs (99% of what you find on Google) aren't those people; they range from "unhelpful" to "criminally bad, you just learned to code last month and your bootcamp requires you to keep writing blog posts and pretending to know things until you get a job" (a real thing!).

hiltmon · 3 years ago
I occasionally write one of these blogs. I have been programming for 32 years and have achieved more success by doing it than I could have expected. I've learned a few things here and there. Some days I write amazingly great code, most days, vomitus shit code. All this experience just means I recognize better which is which. But I keep learning, every day.

I was lucky when I was a rookie to have a great mentor, to guide me into thinking about what I do and in challenging the practices and techniques of coding. I see a lot of developers these days without mentors, who look elsewhere for guidance and ideas.

And part of the problem with us (great and not great - it irrelevant IMHO) developers is we're all really good (or getting better at) at coding (it is what we love and do), but on average we're pretty awful at communicating. I learned much from the few I met who could communicate.

So I started to write. To learn how to communicate. And the best forum for that is the internet. Fast, clear, and often brutal feedback abounds. You either get better or you get out. Looking back, my early writing was terrible, you decide if it got better.

My goal was to share the nuggets I picked up over the years and share them, the good and bad. To be a virtual mentor, to pay back what I received. Some nuggets I believe are solid gold and I hope readers will find parts of them to help themselves grow, and some nuggets are radioactive and I hope readers will dodge these traps. I do not believe I am right all the time (and again, an internet discussion often reveals flaws in my knowledge and experience), all I wish to do is add value.

I do not tag myself as a "great" programmer, I trust I am not being too arrogant saying I am an "above average" programmer, this industry is huge and there is still much to learn for anyone to claim the title "master builder".