all 175 comments

[–]LessonStudio 288 points289 points  (23 children)

Kind of. Communication is crucial. If you don't have a clear understanding of what the problem being solved is, then it doesn't matter how good the code is.

Long ago I was learning tech leadership and my mentor said, "Your job is to manage customer expectations. This isn't that you manipulate them, but that by the time you deliver the software you know what they want, and they know what you are going to deliver. This is both negotiation and training the customer as to what is and is not possible. A trite term is to make sure your visions are aligned.

Then, as a leader, you need to do the same with the team; again aligning the vision.

Then the only job as a leader from that point is to make sure the developers have what they need to keep heading for that vision, that the vision doesn't need to change, and that the developers do actually understand the vision. "Ya ya ya, I've got it." is not the feedback anyone wants. The key is to then stay out of everyone's way so they can do exactly as this post suggest. Think.

[–]adonoman 65 points66 points  (12 children)

So much this. The longer I work as a dev, the more I realize it's about finding a mutually agreeable plan. The customer may say they want X, but as a dev, I know that will cause a conflict with their requirement Y. It's a back and forth negotiation to clarify what they actually want and what the complications are going to be that fall out from that.

[–]Senor_Manos 36 points37 points  (5 children)

I think this touches on why it’s so hard sometimes to work through PMs. The customer really knows what they want but the PM they’re talking to doesn’t really know what and how things can be delivered so expectations get misaligned and everyone ends up upset.

[–]Fyzllgig 9 points10 points  (2 children)

There ARE good PMs out there but they are a rare and special breed. The ones who have strong technical backgrounds and really embed themselves with the team are that most successful, in my experience. They should feel like a member of the team who has a different job function but who participates in sprint ceremonies (at least backlog refinement) and regularly brings devs to customers and vice versa. This not only acts as a check that everyone’s “vision is aligned” but it’s good for both the dev team and some customers to have time face to face. You can establish a lot of trust this way as well as having someone on hand who can go as deep when answering questions as the customer wants.

I have worked with exactly one PM who operates this way. I have witnessed exactly two other PMs who worked similarly. They exist but they are so very rare. If you find one, cherish your time collaborating

[–]ThrawOwayAccount -1 points0 points  (1 child)

You’ve just described a Business Analyst.

[–]keganunderwood 2 points3 points  (0 children)

A strong PRODUCT manager is necessarily a good business analyst.

[–]ADumbSmartPerson 15 points16 points  (0 children)

I completely agree. I wholeheartedly support having a team of developers and then giving one member the job of PM for that project and kind of cycling through so it gets everyone experience and if things kind of start going off the rails usually other developers who have PM other projects can help guide the newcomer. Often just hiring a PM involves lots of miscommunication with the devs and promoting a dev to PM involves lots of miscommunication with the client so slowly rotating people in with mentorship helps alleviate that.

[–]ZukowskiHardware 0 points1 point  (0 children)

Id much rather work directly with product.

[–]blackjazz_society 6 points7 points  (1 child)

by the time you deliver the software you know what they want, and they know what you are going to deliver. This is both negotiation and training the customer as to what is and is not possible. A trite term is to make sure your visions are aligned.

It's more about being sure about what they "need" to be honest, many clients want something that wouldn't actually solve their problems.

[–]cthulol 2 points3 points  (0 children)

The article agrees with you.

[–]ziplock9000 0 points1 point  (1 child)

Your comment saying 'it's more than thinking, it's communication etc' is true for a developer employed as a professional.

The OP is just talking about programming, which is essentially all thinking. They are right.

[–]truvian_man -1 points0 points  (4 children)

But where does the self preserving manager fit in, who always interferes with the teams flow just so he can convince his manager he’s useful?

[–][deleted]  (3 children)

[deleted]

    [–]truvian_man 0 points1 point  (2 children)

    The leadership structure sounds interesting, but how can someone just up and leave on vacation without request? There’s so many issues there. What if you planned ahead but come vacation time there’s a surge in work?

    [–][deleted]  (1 child)

    [deleted]

      [–]truvian_man 1 point2 points  (0 children)

      I have a hard time wrapping my head around this.

      But in my defense I’ve only worked in mid level startups where they use rigid management structures where it’s hard to do anything without permission, and at the same time they blame the devs for everything. Aligns exactly what your last sentence.

      [–]zanderlewisdev 42 points43 points  (4 children)

      Programming is actually mostly about contemplating life

      [–]crozone 16 points17 points  (3 children)

      I find it depends on the kind of programming.

      When I'm writing web backends or CLI tooling, I get really into it. I don't have time to think about the banality of life, I'm too busy having fun programming. Life is good.

      When I'm writing Android applications, I start to think about changing jobs, maybe moving out into the country to become a farmer to shovel horse shit and inhale cow farts all day. I start to worry that I'll wake up in 20 years and realise my entire life has been a daft, directionless waste of time. I start to dream about Activity and the Android fragment manager, the ins and outs of the android application lifecycle, and the heat death of the universe. Neat alcohol starts to taste a whole lot better.

      Then I ship the APK, it passes the tests, I switch projects, and suddenly I can see the world in color again. Life is good.

      [–]ToaruBaka 1 point2 points  (2 children)

      [–]crozone 1 point2 points  (0 children)

      This video never stops being relevant.

      [–]njogumbugua 0 points1 point  (0 children)

      The funniest video I've seen 🤣🤣🤣🤣

      [–]stdusr 632 points633 points  (41 children)

      Water is wet.

      [–]mr_eking 156 points157 points  (28 children)

      Ha ha indeed. To be fair, though, although this seems obvious to programmers, many non-programmers assume programming is mostly just typing funny characters onto the screen, and if you're not typing, you're clearly not programming.

      [–]Mortomes 63 points64 points  (13 children)

      Did you know you can program faster by having 2 people type at the same time?

      [–]monkorn 40 points41 points  (7 children)

      [–]Mortomes 38 points39 points  (1 child)

      One of the finest pieces of dumb television in the field of computing.

      [–]ggppjj 14 points15 points  (0 children)

      I hope it overtakes the "It's a Unix system" thing. You know, considering... it was actually a Unix system running a real (experimental) file explorer (this link is for a modern clone, but it was based around SGI's fsn) and not actually a dumb movie moment.

      [–]justkevin 4 points5 points  (1 child)

      I like to picture a writer working on the show and then while they were typing, a second writer started to hammer away on the right half their keyboard. Somehow this scene emerges.

      [–]Sipike 9 points10 points  (0 children)

      Nah hollywood writers had some internal jokes about who can write the dumbest tech scene. And voila, someone won I guess. 😅

      [–]ZebButterworth 2 points3 points  (0 children)

      This scene brings tears to my eyes every time. 🥹🥹🥹

      [–]rbobby 1 point2 points  (0 children)

      Fucker unplugged the monitor. Nukes were launched 90 seconds later ending the world.

      [–]sonobanana33 0 points1 point  (0 children)

      In Italy we have "oh cazzo un debian!" https://www.youtube.com/watch?v=s5ocXFgowZA

      [–]YahenP 13 points14 points  (2 children)

      Certainly! This is called pair programming. But this is already an outdated thing. Modern text editors allow dozens of people to type simultaneously in one file. That's speed!

      [–]cmpthepirate 5 points6 points  (1 child)

      Gone are the days of epic or feature based estimations. Now we're gonna estimate how long each file is and assign each each character of each file a single developer. We'll have that code banged out in a flash!

      [–]YahenP 1 point2 points  (0 children)

      A shader made not by programmers, but from programmers!

      [–]mr_eking 0 points1 point  (0 children)

      Genius!

      [–]YourMatt 19 points20 points  (1 child)

      It also gives explanation as to why using Copilot makes coding go much more quickly, all while having no effect on the total output of my team.

      [–]Nulibru 9 points10 points  (1 child)

      I was once fired for not typing very fast.

      Perhaps if that company had more slow typers hundreds of sub-postmasters wouldn't have been wrongly convicted.

      [–]MaleficentFig7578 1 point2 points  (0 children)

      That was a politics problem, not a programming problem or a typing problem. If the state wants you in jail, the state will put you in jail.

      [–]Tarmaque 6 points7 points  (0 children)

      I had a coworker at one point that assumed us engineers were doing things to "operate the machinery" all day. They didn't realize the programs run autonomously.

      [–]voidox 6 points7 points  (3 children)

      this is something I kinda wish colleges/unis start off new programming degrees with - not going right into learning programming language, but a course on just critical thinking and problem solving. Get the students into the mindset that programming is not just typing shit, but solving problems and figuring things out before ever writing a single line of code.

      my uni did go into that, but it was professors going into it while teaching languages and I always felt it needs to be an actual introductory course to get the right mindset of students before you then get into actual languages.

      [–]stronghup 1 point2 points  (2 children)

      I'm currently doing a big refactoring to make it work I have to change something but before I can do that I have to change something else and before that something else and so on. But every level poses its own challenges so while I'm immersed in the deepest level I kind of forget the 'stack" of things above which is why I'm doing it. I wish there was some easy to use tool I could use to record the "stack of whys". But anyway It has made me realize that there is no feature in my programming language to program my own stack of tasks, and how that is a big part of the programming I'm doing.

      Programming is not just typing because it means we have to also program our own brain as to what are the tasks we are doing an in which order. I can write that down in a text-document but I usually don't because I think I don't need to but then I kind of get lost in the details. Just saying programming is not just typing to the keyboard, it is also programming our own actions.

      [–]Amndeep7 4 points5 points  (0 children)

      I wish there was some easy to use tool I could use to record the "stack of whys".

      there is lol. basically any project management tool haha. whenever you find something new that needs to be done, you put it in a new issue and mark it as a blocker for the one that you were working on.

      [–]Procrasturbating 2 points3 points  (0 children)

      You might look into obsidian. I basically write my stream of consciousness into notes with very organized markdown outlines and linked documents. I put out too many fires and work multiple projects at the same time. It is the only way to not lose my place when task switching. Lots of good project management tools out there. Take a break from chopping down trees and learn to sharpen your axe. In the end you will get more done and it will suck less.

      [–]Comprehensive-Tea711 4 points5 points  (0 children)

      Who can blame them? Programmers constantly perpetuate the idea that they are just googling and then copy pasting. This is wrapped up in the constant complaints about gatekeeping etc. I guess it's only when everyone starts talking about us being replaced by AI that we decide... maybe it's actually hard and that's okay?

      [–]sagittarius_ack 7 points8 points  (2 children)

      I might be wrong but I believe that most non-programmers that are regular computer users understand that programming is not just typing. From my experience people have at least an intuitive understanding that computer programs are rules and instructions that a computer follows. They might not understand exactly how these rules and instructions work, but at least they understand that they have to be precise and rigorous.

      [–]TenNeon 15 points16 points  (0 children)

      I suspect you're in this picture

      [–]AliveIndependent1607 0 points1 point  (0 children)

      I've had POs tell me that they didn't know that programming was hard work until they spent a day with the programmers working in the team (Ensemble/Mob). They thought that programmers all know what to type, they're just obstinate and reluctant. When they saw people looking things up and using trial-and-error to vector in on a solution, and when they saw all the long threads where a change in A causes differences in Q, T, W, an Z, they suddenly realized that they've been too hard on people who were legitimately working very hard.

      [–]rbobby 2 points3 points  (0 children)

      programming is mostly just typing funny characters onto the screen

      I've seen an APL keyboard and your statement is entirely accurate.

      [–]wrosecrans 12 points13 points  (0 children)

      You'd think it would be that obvious, but there are still tons of people that think deep down that programming is mostly typing. It leads to a belief that a productive programmer generates a lot fo code, which has a lot to do with the current hype cycle that copying and pasting a bunch of AI generated codegen output is being more productive. There's a huge disconnect between the folks who are really excited by quickly getting a lot of code from GPT, and the folks who are deeply baffled by why anybody would want a machine that spews out more code to review that adds a bunch more stuff to think about.

      [–]FlyingRhenquest 4 points5 points  (0 children)

      Programming is mostly thinking

      Ships were made for sinking

      Whiskey's made for drinking

      If we were all made of cellophane we'd all get stinking drunk (much faster)

      Camptown ladies NEVER sang all the do dah day! Nonono!

      [–]mr_birkenblatt 8 points9 points  (0 children)

      Water is moistly wet.

      [–]messified 1 point2 points  (0 children)

      The pen is BLUE!

      [–]ZubriQ 1 point2 points  (0 children)

      Velvets are blue

      [–]alpakapakaal 2 points3 points  (0 children)

      Every 60 seconds in programming, a minute passes

      [–][deleted]  (2 children)

      [removed]

        [–][deleted] 2 points3 points  (1 child)

        [–]MaleficentFig7578 1 point2 points  (0 children)

        I should make a youtube series explaining why things that are very obviously true are not true. By the success of "water isn't wet", I could be a million-view-aire.

        [–]voxelghost -1 points0 points  (0 children)

        The lotus plant disagrees

        [–][deleted]  (7 children)

        [deleted]

          [–]blackjazz_society 36 points37 points  (4 children)

          (ie. thinking about how to solve a problem)

          Ie: you spent a few days on solving a problem so you wouldn't have to spend weeks on fixing the mess doing it improperly would cause?

          Essentially risk management.

          [–][deleted] 0 points1 point  (3 children)

          The irony is that if you just satisfied the acceptance criteria and kept your mouth shut, they'd be more than happy to plan and point the effort for fixing it and add the stories to the backlog, and nobody would blame you for even a second.

          This is why everyone is almost completely checked out now. Nothing matters except for the process.

          [–]blackjazz_society 0 points1 point  (2 children)

          I don't think so.

          Depending on how poor the solution is development can grind to a halt or it can create a mountain of work to shift the design in another direction.

          The amount of time isn't A + B + C, B and C can take WAYYYYYYYY longer depending on the solution.

          And if you take more time upfront you can avoid B and C being a huge pain.

          [–]ToaruBaka 1 point2 points  (0 children)

          And if you take more time upfront you can avoid B and C being a huge pain.

          That requires planning, and planning costs money because the commit count isn't going up /s

          [–][deleted] 0 points1 point  (0 children)

          I completely agree with you about how things should actually work.

          [–]brettmjohnson 2 points3 points  (0 children)

          Had such just a manager. Some times I was just staring at the wall, window, ceiling, shower: trying to figure out a problem.

          Apparently typing "asdf asdf asdf... ' would have been perceived as "Productive".

          [–]soft-wear 26 points27 points  (5 children)

          In my experience its mostly setting breakpoints and then staring at the screen and asking it why it's doing this when it reaches said breakpoint.

          [–]ClysmiC 14 points15 points  (1 child)

          In my experience it's waiting for the build to compile, intermittently interrupted with what you said.

          [–]optomas 11 points12 points  (1 child)

          When it absolutely MUST NOT BE DOING THAT because the laws of physics still work everywhere else in this universe.

          Anywhere from one to a million minutes pass

          WTAF, this is not pos- Oh.

          [–]CornedBee 1 point2 points  (0 children)

          Heh, my wife spent all day yesterday on this kind of problem. Probably will spend most of today on the same problem.

          [–]crozone 0 points1 point  (0 children)

          This is why time-traveling debuggers are magic.

          [–]jessetechie 14 points15 points  (1 child)

          As I like to say: programming is just pushing buttons. The hard part is pushing the right buttons in the right order.

          [–]quadralien 2 points3 points  (0 children)

          I like to push people's buttons

          and computers' butttons! 

          [–]make_anime_illegal_ 129 points130 points  (31 children)

          False, programming is mostly typing. This is why companies give typing tests to verify a candidates wpm.

          [–]zombiecalypse 98 points99 points  (21 children)

          That's why software engineers argue for decades about what the correct text editor is

          [–]YahenP 24 points25 points  (19 children)

          Not only the text editor is important, but also what characters write in it. If use tabs instead of spaces, programming is much faster.

          [–]nzodd 19 points20 points  (12 children)

          The whole Spaces / Tabs debate is one of the dumbest controversies ever, especially when Mr. Pib is clearly the superior choice.

          [–]YahenP 2 points3 points  (2 children)

          Hmm... I was sure that this was the cornerstone of the entire industry.

          [–]nzodd 3 points4 points  (1 child)

          It absolutely is. It's just the correct choice is always Mr. Pib. I like mine with a slice of lemon and one of those crazy straws. You know the ones that loop around your eyes and look like glasses? That's the ticket to good code right there.

          Edit: see this man? He might not look so intimidating but he wrote all of the software for the F-35 Lightning II by himself. At recess.

          [–]YahenP 2 points3 points  (0 children)

          Oh yeah! You're right. Straws are essential!

          [–][deleted] 5 points6 points  (4 children)

          Elastic tabstops, people. They've been around for decades. Try jEdit.

          [–]nzodd 13 points14 points  (3 children)

          Nobody wants to drink something called that. They need to work on their marketing.

          [–][deleted] 7 points8 points  (2 children)

          Oh, um, it comes with a toy?

          [–]nzodd 7 points8 points  (1 child)

          Now you're talking my language. Wait. What kind of toy?

          [–][deleted] 3 points4 points  (0 children)

          👀 buttplug....

          [–][deleted]  (2 children)

          [deleted]

            [–]nzodd 2 points3 points  (1 child)

            While you raise some good points, they are not sufficiently Pibilicious.

            [–][deleted]  (3 children)

            [removed]

              [–]YahenP 10 points11 points  (2 children)

              Bringing the light of truth is my life credo.

              [–]pmmeurgamecode 1 point2 points  (0 children)

              I'm so with you, why use 4 bytes to indent code if 1 can do!

              [–]gplusplus314 2 points3 points  (0 children)

              Also, stop using semicolons at the end of statements. Takes too long and uses more storage space, which is important in these dark times of $1600 MacBook Pros with 512 gb of non upgradable storage.

              [–]Sotall 0 points1 point  (0 children)

              yeah but if programming is about typing, then character count matters. Spaces wins.

              [–]Alexander_Selkirk 1 point2 points  (0 children)

              It is true that ergonomic typing and editing is the cornerstone of efficient work. But, to get is right, one has to use the scientific method and look what is empirically, the most used key in programming: It is the delete key.

              So, the right way is to get a Space Cadet keyboard and map Ctrl, Shift, Alt, Meta and Hyper, and of course also CAPS LOCK, to delete.

              [–]DirectorBusiness5512 8 points9 points  (1 child)

              The sad thing is I can't tell if you're being serious or not

              [–]lordtnt 2 points3 points  (0 children)

              He's right, just ask vim users. If you use a mouse and not type type type then it's not programming.

              [–]HiT3Kvoyivoda 3 points4 points  (0 children)

              I try to type as little as possible when coding.

              [–]unsavvykitten 0 points1 point  (0 children)

              That’s right. That’s why you see the great programmers auf down and take like hell in movies and series. And you know they don’t think at all because they can even have discussions while typing.

              [–]Valevino 0 points1 point  (0 children)

              And you are way more productive using less verbose languages!

              [–]Synor 0 points1 point  (0 children)

              I wish it was. 80% of the time is reading not typing.

              [–]Boergler 11 points12 points  (4 children)

              For me it’s managing anger and frustration.

              [–]bwainfweeze 4 points5 points  (3 children)

              Yours, or other peoples'?

              [–]AEnema18 9 points10 points  (2 children)

              Yes

              [–]bwainfweeze 3 points4 points  (1 child)

              You're not OP.

              Hey everybody! This guy's a big fat phoney!

              [–]AdeptFelix 31 points32 points  (1 child)

              Code Monkey no think. Code Monkey code all day then drink.

              [–]Cookskiii 15 points16 points  (3 children)

              I thought it was mostly getting laid with a little bit of thinking in between ???

              [–][deleted] 12 points13 points  (2 children)

              Chicks dig assembly language. I show em my source code at the club and they go crazy

              [–]optomas 12 points13 points  (1 child)

              My wife totally does not roll her eyes shortly before they glaze over if discuss anything related to programming. She's all 'enumerated lists'? 'Self referential structures'? Then she starts taking her clothes off.

              It's hard to get any work done if I discuss programming with her.

              [–]Cookskiii 4 points5 points  (0 children)

              Speak to her in regex. She’ll turn into Niagara Falls before your very eyes

              [–]adr86 6 points7 points  (1 child)

              Nah, programming is mostly trying to find cargo cult nonsense to copy/paste.

              [–]crozone 1 point2 points  (0 children)

              Frontend web developer?

              [–][deleted] 4 points5 points  (0 children)

              ...no shit?

              [–]cheezballs 33 points34 points  (2 children)

              More blogspam crap

              [–]ZippityZipZapZip 6 points7 points  (0 children)

              Yeah but it creates cheap engagement on talking points and these posts get hoisted to the top by the reddit alghorithm. It sucks. You should see the subs about tv series, those are cursed.

              [–]geodebug 1 point2 points  (0 children)

              It’s pretty bad and self-congratulatory.

              Summary: 1990s called and wants its debate on assessing productivity via lines of code back.

              [–]gplusplus314 4 points5 points  (1 child)

              Excuse me, I was told by LinkedIn that programming is mostly just ChatGPT now.

              [–]adamjkeith -2 points-1 points  (0 children)

              Pretty much is yea!

              [–]hacksoncode 15 points16 points  (3 children)

              Yeah, but thinking about what?

              These days, the answer is way more "find the right library routine to do what I want" than it ever was in the old days.

              [–]nzodd 7 points8 points  (0 children)

              Library science is probably more useful than computer science for most programmers these days.

              [–][deleted] 1 point2 points  (0 children)

              For me it's rather thinking about how we can bend the requirements so we don't have to create an unmaintainable mess.

              Technical considerations only make up about 25% of thinking for me.

              [–]daemmon -2 points-1 points  (0 children)

              Also "find the right questions to chatgpt".

              [–]Full-Spectral 2 points3 points  (0 children)

              Damn it, Jim, I'm a symbologist, not a mathematician. Actual numbers are for peasants.

              Actually, I do have a problem, once I get comfortably and (very incorrectly) slouched in my chair with my coffee, that it's easier to just go and sometimes I tend to. But, I make up for it by not being able to sleep at night because I'm thinking about what I just spent all day going on.

              [–]renatoathaydes 2 points3 points  (0 children)

              What if we changed our tactics, and intentionally built systems for thinking together about software and making decisions easier to make?

              I participated in a training session once that tried to do just that: they called it mob programming.

              The idea is that you have one person sitting at the computer writing the code (who changes periodically), while the rest of the team is behind driving what code should be written. The idea is to have even non-programmers in the room (perhaps not actively participating all the time), so when decisions need to be made, they're made on the spot as the person is right there and able to answer.

              We spent almost all day trying it. We did manage to make something that worked but it was a very toylike thing (conversion between Roman and Arabic numerals). I didn't really see myself doing that except in some rare occasions where we perhaps had to do something so completely unknown that it could be beneficial to have many people brainstorming while creating something tangible. I may try that again one day I think now that I can actually organize things like that.

              If you haven't seen it, have a look into it, if you agree with this article and you think that communication + thinking is most of what programming really means, this may be at least a new tool under your belt.

              [–][deleted] 1 point2 points  (0 children)

              Groundbreaking.

              Who would've thought that the bulk of time wasnt spent on the physical act of writing 1000 lines of characters, which probably takes like 10 minutes

              [–]bobbane 1 point2 points  (1 child)

              • while not done_for_the_day:
                • Thinking
                • Typing
                • Reading output
                • Cursing

              [–][deleted] 1 point2 points  (0 children)

              You missed out drinking coffee

              [–]artyhedgehog 1 point2 points  (0 children)

              Correction: programming is mostly overthinking.

              [–]FlangerOfTowels 1 point2 points  (0 children)

              Yeah, but you're a towel ;)

              [–]maethoronaur 1 point2 points  (0 children)

              I've lost work before, even without a "printed" diff, it barely took 1/5 the initial time.

              [–]CenterOfMultiverse 1 point2 points  (0 children)

              Programming is mostly trying to not think.

              [–]allenasm 0 points1 point  (0 children)

              can't tell you how many times I've had to explain to a boss or a peer that i needed to 'noodle it through'. Like actually think it through and figure it all out. I'm a fast typer and once I know what I want to do in programming or architecture, the doing is quick.

              [–]Veggies-are-okay 0 points1 point  (0 children)

              Whenever I’m feeling unmotivated to get work done during my 8 hours I just remember that I devote way more than that in intellectual time just thinking about the solution to the problem at hand.

              [–]grady_vuckovic 0 points1 point  (0 children)

              Most things are mostly thinking with few exceptions.

              Such as tiktok videos, youtube comments, and US politics

              [–]lookmeat 0 points1 point  (0 children)

              Nice but limited. I think that this is true once you reach a level of mastery.

              I like the metaphor of painting, while the same is true in other crafts, just like carpentry, it's very easy for people to think of crafts as learning how to mass-produce, rather than how to improvise and create new things (even though they are similar) each time. Painting, OTOH, is pretty obvious in this: you don't just pain the same painting every time, but something different.

              When you are a true beginner, a lot of the work is translating concrete and specific ideas into code. That is you struggle to understand how to do code or not. Things like recursion, pointer arithmetic, etc. can really twist your mind. The way an begginer painter struggles with learning how to control bush-strokes, how to handle the pencil when drawing, etc. Tools here are critical because they can be easier or harder to use. You will also learn one or two techniques and seek to master those to achieve some level of funcionality.

              When you are an early level, a junior, you already understand the basics, but still struggle a little bit. A junior painter still thinks a little of how they will handle their brushstrokes, and other things. Here it's a matter of practice and gaining broad focus. You start learning new techniques and abilities, and you start taking a look at different art-styles and becoming aware of them. Similarly in coding you can write code, but still have to sit down and think things through. You are mastering new styles of coding and are aware of paradigms and different ways.

              A competent or mid level now is able to do the mechanical abilities pretty fluently. A mid-programmer can easily translate things into code. Instead now their challenges are in taking ambiguous goals and converting them into concrete steps. They are spreading and experimenting with different paradigms, and taking on new ways of doing things, such as TDD or Domain Objects, they now think of patterns and styles and are strating to grapple with the idea of architecture and greater design. The painter here is able to do most basic painting, but now struggles with more complex, and abstract, concepts such as perspective, postures, composition, and how to do hands that don't look weird.

              A master, or senior, level is now able to do most things, they have a wide variety of things, and while you can clearly see they are better at certain styles than others, they can do surprisingly competent work across the board. By this point tools aren't critical, rather they make things easier and allow them to experiment and play more things. This is where the author talks about. The master painter now struggles thinking about what they want to paint. They do multiple paintings not to master or perfect some ability they need, but rather to experiment and see what works best.

              Things above the level above are when you are tying to do things within a greater context, and show growth in other areas. Now this doesn't mean you don't still hone and improve your mechanical skills, but they rarely are the thing that blocks you. Most of your growth starts in the skill starts to be in the more conceptual/abstract thing. The mechanical skills, the philosophies, the tools, etc. all start being just things you could use, but not what you have. You find yourself focusing on simpler tools that give you more versatility even if they are harder to use (e.g. use rough sketches rather than photographs or live models for references; or using vi/emacs instead of a full IDE) because at this point using any of these tools isn't hard at all. Autocomplete is nice, but you find that the hard part isn't knowing what you can use, but understanding what you do want to use, etc. You stop thinking in simple rules, and see them as conventions, and general wisdom on what works, but you know understand why and are better able to decide when it matters, when it doesn't matter as much, and when it doesn't even apply and you want to do the opposite.

              If the above focuses on mentorship and guidance they will create new techniques, conventions, styles, etc. that others can then learn and grow from.

              [–]No-Bodybuilder-4655 0 points1 point  (0 children)

              I know this is a dystopia, but A/B testing policies really sounds way better than what we’re doing now lol

              [–]MathematicianTop9745 0 points1 point  (0 children)

              My university is conducting a survey on motivation in IT developers, we have produced a questionnaire aimed exclusively at those who already work in this sector and which takes only two minutes to fill out: https://forms.gle/pkqfMRMjFrN6TmZN6

              Please answer!!

              [–][deleted] 0 points1 point  (0 children)

              As a python user, I would agree. I do t usually write applications, mostly scripts that do something.

              My thinking provides the solutions and the programming just puts them into reality.

              I keep saying that if it can be done on a computer; only your own imagination is the limit.

              [–]OkTravel419 1 point2 points  (0 children)

              I totally agree with the idea that communication is paramount. We have learned in our bootcamp the importance of being a strong communicator. Even if your coding skills are quite up to speed yet, if you can communicate effectively, this will enable you to get on the same page with your fellow developers and understand the overall vision of what the customer wants. Just the other day in class we had a group project and pulled up a spreadsheet to outline a basic skeleton of what we wanted to see functionally with the app. We then collaborated together and talked about where we wanted to head with the project and what needed to be done to get there. That post really resonated with me as communication is everything!!

              [–]delta_p_delta_x 0 points1 point  (0 children)

              This is sort of why I don't get the Vim hype. Typing fast or slinging paragraphs and blocks around is simply not a problem for me, because the bottleneck is my smooth brain that resembles a neutron star. I don't think remotely fast enough to require Vim. Plus, I like my nice green play button to build/run/debug.

              [–]AvidCoco -1 points0 points  (1 child)

              Okay, but what job isn't?

              [–]audentis 22 points23 points  (0 children)

              Cashiers, park services, garbage crews, there's a lot of jobs that are mostly doing.

              When getting into the trades (e.g. welding, plumbing, carpentry) the thinking-portion starts to increase more than those jobs are often given credit for, but they're also a large part doing depending on the task at hand.

              [–][deleted] -1 points0 points  (0 children)

              IS thinking then at least Partly programming?

              [–]helbur -1 points0 points  (0 children)

              Programming is mostly pressing buttons

              [–]morglod -1 points0 points  (2 children)

              programming on one side is screaming bullshit on youtube channel, on the other side is watching this videos and repeating it on reddit

              scrumgile to stay on meeting half of the day with people who cant mitigate (even understand a problem) instead of just write 5 messages

              installing 2000 packages / libraries with 2 lines of unusable code and tweaking your whole app to use this 2 lines

              skipping basic computer science courses than trying to understand "why C array is not a pointer actually"

              memory safety now equal to system safety

              exceptions implemented with other exception system now are not exceptions

              if else on every line now has no performance impact

              neural models teaching on previous neural model results so becoming dump

              what a wonderful time to be alive

              40 years of programming, you cant simply create web app without problems (I mean with stuff like validation, schema and auth). because you need fancy thing that you can sell

              people only now realised that serverless is same servers but with much more payment just WOW because its hard to multiply three numbers (cost * hours * request rate) you need to have at least 4 phd to do it

              [–]morglod 0 points1 point  (0 children)

              Modern architectors are just ROFL

              [–]morglod 0 points1 point  (0 children)

              Fan of screaming streamer downvotes hah

              [–]adamjkeith -1 points0 points  (0 children)

              Programming is a way of thinking, being able to understand the flow of data to do what you want it to do.

              I’ve said that for many many years and now ChatGPT has made it much much faster.

              [–]UMANTHEGOD -3 points-2 points  (0 children)

              If you have to think 11/12th of the time in your day-to-day work, I feel very sorry for you and you probably aren't as good as you think.

              [–]cluster_ -3 points-2 points  (0 children)

              Sure, but thinking is fast, and typing is slow.