Words of wisdom for programmers

As the title suggests, this thread will contain some real wisdom came from experience. Please add something meaningful than fancy looking useless quotes.

I’m starting the thread with three of the tweets by Shawn Swyx Wang @swyx.


"

Engineers are supposed to be practical but we do so much ineffective bullshit.

There’s no point creating a reusable abstraction if it ends up hard to use.

There’s no point arguing about perf if you don’t have a representative benchmark.

Hold your own beliefs accountable, please.


We’re too busy dealing with our own BS. and HEAVEN HELP YOU if you just conclude anyone who disagrees with your particular brand of bullshit is wrong or junior or whatever.

We don’t have time to do it for you thanks to the Bullshit Asymmetry Principle.


Brandolini’s law aka the bullshit asymmetry principle: “The amount of energy needed to refute bullshit is an order of magnitude bigger than to produce it.”

"

7 Likes

Corresponding tweet for this thread:

Share link for this tweet.

2 Likes

Great thread!

I am not sure if these qualify, but they are just some tips on things I found useful:

  • When you’ve decided on using a new technology, read a book or two about it. I’ve found it incredibly beneficial getting a good overview of what’s possible with a language or framework as it helps you picture how you could use it. Doesn’t matter if you don’t remember every little detail, you’ll be able to find the details when you need them. (I’ve stolen this last bit from @chrispine and his Learn to Program (2nd edition) (PragProg) book - he made me feel completely fine about not remembering everything!)

  • Find a language, framework or tech that you enjoy using - we generally excel at things when we enjoy them. Also means you’ll be less likely to get bored or burnt out.

  • Don’t worry about asking questions or appearing like you don’t know something - because it helps others, both by the answers you might get to the questions you ask but also by showing others it’s ok not to know something, or that you have experience with something (when it appears everyone else might!) or even that you are struggling to grok something. This can help others who may be feeling similarly, but also could help language and framework maintainers improve their projects, docs etc

7 Likes

I have a few words of wisdom I’d like to share.

  • When asked to modify something, we so often get a suggested solution instead of a stated problem. Seek the goal; seek the “why”. :thinking: Often times what’s being asked isn’t what’s needed. And besides:

    • a goal statement invites everyone’s brainpower
    • a suggested solution usually invites only (premature) critique
  • When programming, resist the urge to “clean it up later”. Either avoid the situation in the first place or spend a little more time and do it now. :broom: The task at hand will never be fresher in your mind, and “later” is likely to never come. Your future self and colleagues will thank you (or at least not curse you).

  • Stuck on a problem? Drink some water, take a walk (outside if possible), and carry the problem lightly in your mind. :deciduous_tree: At least you’ll be refreshed, and the odds are better for having a eureka moment. :bulb: Being frustrated and/or having hurry-brain hampers problem-solving skills.

Agreed. I’ve found a lot of value in getting fundamental exposure to a new tech without trying to remember it all, and reading a book is my preferred method.

Time and again, I’ve discovered that having this initial context has made life easier:

  • finding additional information
  • asking good questions
  • discerning bad / outdated advice

For example, I think I would have had a much tougher time learning functional programming without reading a few books (okay, a lot of books) and gaining a foundation. Otherwise, I don’t think I would have appreciated how much of a paradigm shift the jump from imperative to pure FP really is (well, for me, that is). I might have ended up frustrating both myself and others by asking poor questions. (So now I ask slightly better questions and only frustrate others :stuck_out_tongue_closed_eyes:).

7 Likes

Great advice Ted!

I’ve definitely been guilty of this in the past and you are right, later never comes :laughing:

I think I hate the feeling of feeling lost or not knowing where to start, and I’ve found I can avoid that feeling by getting a good overview of things.

Like @DevotionGeo (and I guess many others) I also used to think I needed to remember everything, but it was Chris Pine who made me realise I didn’t - because there he was this professional developer who said very loudly and clearly that he didn’t and that he constantly had to Google things. That was just what I needed to hear because after that all my self-doubt vanished. Every would-be programmer needs to hear that!! :innocent:

5 Likes

My mentor at my first ever software job taught me the Five Fs of good software:

  • Functional
  • Fast
  • Friendly
  • Flexible
  • Fixable

They’ve served me well for nearly 20 years. :slight_smile:

5 Likes

Some lovely practical advice here.
After 20 years of programming I still consider myself an average programmer and a junior many times a day. Technology is changing so rapidly I feel it is impossible to stay on top of it all. Take Angular for example, they will probably release 2 versions before I finish this post :smiley: , only joking.
But developers need to hear these confessions because we have the impression that we should know everything and to realise you are not alone felling this way can make a big difference.

But now I am beginning to feel burnt out. It’s like running a marathon, I’ve hit my wall and doubting whether I can continue.
My 2021 resolution is to read more tech than I normally would (which to be honest has not been much, my bad). I am not going to change my tech stack but instead try and deep dive and get a better grasp of the concepts.
But I also lack a lot of the computing basics, the bigger picture as it were. Tunnels, Networking, VPNs, Protocols, Security, etc. It’s all been lost in the haze of time and I wish to brush up.
So with that in mind, I’m looking for good books around general computer systems basics that might bring me back to the future, or at least into this millennium. Does anyone have any preferred reading material? Some book they may even dare to call their tech bible ?

6 Likes

Sounds like a good idea @finner - perhaps you can document your journey in our #community:journals section :smiley:

I actually want to do similar and want to focus on the learning side of Devtalk next too, so you’re definitely in the right place!

I wonder whether we should put together a ‘zero to hero’ plan which could allow people to get started from the very beginning… or to jump in from where they feel like. It could include online tutorials, videos, books, courses etc

What do you think?

2 Likes

Hi @AstonJ, Happy Christmas & New Year.
I like the name zero to hero :smiley: However, I’m not sure I would feel comfortable writing about my learning journey using a book that might not be published by the sponsors on this platform.

3 Likes

Happy Christmas and New Year to you too @finner :christmas_tree: :partying_face:

Please don’t worry about that, this is an open platform where talk about all learning material is welcome :blush: plus there will be lots of content here related to their own resources too as they are posting their official threads here (and in case of PragProg, errata too). You may have even noticed we have threads about all sorts of resources from various different publishers already - so please don’t let that bother you at all.

I am going to be posting about my own journey too, and a lot of it is going to contain things like YouTube videos too (seems a lot of the good JS stuff is on there!) and I’d love for you to do the same as it looks like we may be doing a lot of similar stuff :smiley:

2 Likes

Yesterday I decided to buy The Well Grounded Java Developer MEAP, with the intention of documenting what may be of general interest in the learning process.
I chose that book in particular because it focuses on the bigger picture, like the JVM bytcode, classloading and performance tuning as well as polyglot programming (e.g., Kotlin, Scala, Clojure, Groovy). This should keep me busy for the year :smiley:

So I’ll give it a shot @AstonJ and let’s see how it goes.

3 Likes

Awesome - I shall look forward to hearing your thoughts about it :smiley:

Shall I move your post to the #community:journals section btw, or would you like to post there (or the reviews section) at a later date?

1 Like

no need @AstonJ - you can leave this thread as it is. I’m not sure how the Journal will take shape and I would prefer to start afresh from the proverbial blank page.

2 Likes

Aggressive marketing should alert you. It can take a long time - studying books, guides, until you understand what aggressive marketing was trying to hide.

2 Likes

Difficult question. It depends…

In the topic of working with SQL for me, such a book was “SQL Queries for Mere Mortals”.

2 Likes

I have a copy of this and use it as a reference - I really like it and I wish @PragmaticBookshelf (or @ManningBooks) would publish more books like it! :smiley:

https://www.amazon.co.uk/SQL-Minutes-Sams-Teach-Yourself-dp-0135182794/dp/0135182794/ref=dp_ob_title_bk

2 Likes

Hi @AstonJ,

What features of SQL Queries for Mere Mortals would you like @PragmaticBookshelf to implement in our books? I’m listening. :grinning_face_with_smiling_eyes:

Margaret

3 Likes

Hi @Margaret!

The very approach to presenting the material is very interesting. Style, so to speak.

Please note that there is a place for humor, the examples get progressively more complex. The theoretical material is presented in a very convenient form (to be a source for multiple references - as described by @AstonJ). The book is created by practitioners who know the material presented to them from different angles. Reading such books is a great pleasure. The book is written in simple language, without showing off and boasting.

Anatolii

2 Likes

The thing I like about the ‘Sam’s teach yourself SQL in 10 minutes’ is that it’s so accessible with each chapter being relatively independent - so whenever I need to brush up on something I can just read that chapter. (I definitely recommend reading it btw, SQL is fairly easy to pick up and it could give you some ideas for different types of books you may want to explore doing.)

Come to think of it, there is one book of yours that I know of that is similar - in the sense of being a resource I often refer to - Rails Recipes!

Hmmm looking on your site I can’t find it :confused: I love that book and it’s definitely been one of my secret weapons over the years :sunglasses: Although a lot of the info is available online, I like that it is from a respected tech publisher (and, even though I didn’t know who Chad was at the time, that left me confident the info contained was from someone who knows Ruby fairly well - as otherwise you as the publisher wouldn’t have worked with him) - so (and this was especially important when I was fairly new to programming) to me it was a fairly safe bet to go with what’s contained in the book rather than worrying about what I’ve read online is actually a good idea or not.

Please do more like it! :blush:

2 Likes

Just saw this – Rails Recipes was published back in 2012, and is now out of print. I agree that the recipe style can be very useful. I’m working on a Go Recipes book, hopefully for 2022.

3 Likes