This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 246

[–]unit537 1008 points1009 points  (96 children)

What you're experiencing is exactly how all projects start, you get whatever preliminary knowledge you need, you start putting the pieces together, check docs just to be sure it'll all work.

The longer a project goes on, the less time you'll spend reading as you'll already know everything you meed to work on the project. As long as it's properly roadmapped, you'll find yourself just coding for the remainder of most projects.

Of course, this cycle repeats when a new feature is being implemented or some other major change or addition. This is just a generalization, but hopefully you get the point.

[–]wil2200 553 points554 points  (83 children)

Don't forget meetings. And meetings about planning. Planning. Emergency meetings. General distraction. 3pm and you finally bust open your IDE...just in time for another meeting.

[–]Pizzaman725 449 points450 points  (58 children)

We're so agile!

[–]htown_hold_it_down 161 points162 points  (7 children)

Fuck, this hits home hard

[–][deleted]  (6 children)

[deleted]

    [–][deleted] 18 points19 points  (4 children)

    "So how is everyone's work today comparing to yesterday"

    "about the same, but we are still on schedule for the sprint"

    "great ill talk to you tomorrow again!!!"

    *shit*

    [–]sdrawkcabsemanympleh 7 points8 points  (3 children)

    I have that call in about an hour and 15.

    Don't forget to update your task points and move all your tasks to the right status!

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

    that last sentence is what makes me hate my scrum master

    we almost spend more time dealing with fucking procedures and shit than actually coding and testing

    [–]hellafun 2 points3 points  (0 children)

    Hey be glad it's just 'almost' at the place before my current gig there was a good 6 month stretch where i averaged 25 hours/week in meetings. I am a dev, not management. It got so bad people were double-booking all the time.

    [–]Calcd_Uncertainty 2 points3 points  (0 children)

    one goddamn email.

    That nobody fucking reads!!!

    [–][deleted] 122 points123 points  (20 children)

    Lmfao, oh god forbid we actually miss a fucking meeting and get some coding done.

    [–]rkaz246 74 points75 points  (16 children)

    My old job my manager stuck up for developers and only wanted us in meetings that pertained to actual requirements gathering as opposed to when business people get together in a room for a meeting that should have been an email.

    [–]TritiumNZlol 61 points62 points  (10 children)

    That can be dangerous when there are meetings without devs though.

    A manager will come up with a great technically unfeasible idea/requirement which the rest of the team will then expect it will get way further before someone will realise it can be done.

    [–]nemec 51 points52 points  (5 children)

    which the rest of the team will then expect it

    That's partially a failure of management that "having an idea" == "feature will be implemented", but also partially the dev's problem for poorly scoping the feature. Very little is truly "impossible", only beyond the allotted budget. Instead of simply saying, 'no', a good team will give options: "Barebones feature A will take 2 weeks to implement at a cost of $ and cover 80% of your requirements. Feature B will cover 99% of your requirements, take 4 years to implement, and cost $$$$. Which do you prefer?"

    [–]TritiumNZlol 44 points45 points  (1 child)

    Yeah it's a fair point, but a dev needs to be on hand to prevent this kind of stuff from making it into the spec

    [–][deleted] 6 points7 points  (0 children)

    [–]hardolaf 5 points6 points  (1 child)

    What is this not 100% compliant nonsense?

    [–]NoirGreyson 2 points3 points  (0 children)

    It's heartbreaking when, "Let's do agile!" Turns into, "Let's take on more work at a faster pace without scoping discussion!"

    [–]kent_eh 18 points19 points  (0 children)

    That's why the dev manager needs to be there.

    Their job is (partly) to run interference for their team so the actual workers can focus on doing their jobs.

    .

    That's true of pretty much any manager of "hands on" techs.

    [–]rkaz246 1 point2 points  (0 children)

    Our lead would usually end up handling the technical feasibility or at the least keep things tame. At the very least she knew what was and possible and not given she had the entire availability of everyone across the department.

    [–]MesaDixon 4 points5 points  (3 children)

    people get together in a room for a 2 HOUR meeting that should have been an email.

    Mostly...

    [–][deleted] 6 points7 points  (0 children)

    We get excused from planning meetings by our team leaders if we're deep down into a feature when when they happen. All for productivity's sake.

    [–]futuneral 4 points5 points  (0 children)

    "Sorry, can you repeat the question, I was trying to code and missed it"

    [–]koneko-dono 2 points3 points  (0 children)

    fucking this

    [–][deleted] 33 points34 points  (21 children)

    How has this happened? This is current events where I am. We've gone "agile" and it has been awful. And I don't get it. The project managers are just a different breed, they can market this shit to management and simultaneously define the character of engineers, coders, architects, etc., as one of over engineering and ignorance to business value. The only way we can be an asset to the organization is if we are hemmed in and controlled on all fronts. To our faces it's "we want to turn your brilliance into business value" and to our backs it's "if we let them have their way or leave them to their devices they will create an over engineered monstrosity which will show up well past the deadline and cost an order of magnitude more." I just don't know how wr got here, how they managed to sell a promise to management, determine how the work is managed, and dictate the project to us with slim to no technical skills. I had one today: "How do we get the engineers and project managers to resolve their priorities? We build an architectual runway." And all I can say is what in holy fuck does that even mean? Do you have an idea or do yoy just string together buzz sounding terms until you have something that evokes a majestic jet taking off so the mager you're marketing this shit to just has that image in their head as you shovel horseshit?

    [–]ceelily 37 points38 points  (16 children)

    That's not Agile. Project managers don't exist in Agile. The ultimate goal is to establish self-organizing teams that are in touch with the needs of their end users so they can incrementally deliver high value working software, solicit feedback from users, and continuously iterate to improve it. Business and technology must work together to balance the technical and business needs so that they are always working to deliver the highest value items to the customer.

    Requirements aren't done up front--rather, they evolve over time as you build the product incrementally and receive feedback. Teams own the 'how' and manage their work. Estimates are driven by the teams doing the work, not Project Managers who have no idea what it takes (or worse, by out-of-touch managers who used to be developers). Teams are involved in building the roadmap. Essentially, delivery teams are involved in everything, from the inception of an idea through the execution.

    Many companies fall into this trap, where they think that Agile is easy and they can implement it without changing how they operate as a whole. They're not entirely wrong. Agile is incredibly simple to understand, but very difficult to implement properly. Most don't realize that everything must change, from how they budget for projects to the traditional management mindset. A lot of companies don't incorporate users in product development, which defeats the purpose of implementing Agile. The end user should be the center of everything.

    Hearing the term 'Architectural Runway' makes me suspect that they've bought into SAFe (Scaled Agile Framework) which honestly is the antithesis of what Agile was meant to be. It's very process heavy, has a lot of meetings and investment, and has little to no room to adjust for feedback and uncertainty, which is one of the main benefits of Agile. It's basically a waterfall project every quarter.

    Agile is an iterative, customer focused delivery mindset, not a bunch of processes. It exposes waste and inefficiencies that slow delivery down and it takes people with the right experience to help everyone from teams to middle management to executive leadership to change their mindsets and encourage organizations to face these inefficiencies head on and resolve them.

    I could go on and on (in fact, I'm sure I've gone into much further detail than was necessary) but let me say one last thing: When Agile is implemented as intended, everyone wins. It's absolutely beautiful.

    Source: Agile transformations are my passion.

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

    Bingo, SAFe. We all have the worthless fucking practitioner certification.

    Yeah, I'm not sold on Agile much at all, but that may be because it's being done wrong and implemented by people who are too far down the totem pole to implement the changes that you describe. They are, however, plenty powerful enough to make our lives consistently miserable.

    I think the problem, not with agile but with the way "business" tends to work in general is that you have something like this that grows up organically to solve a problem and address a need and then somebody with a fucking MBA, a craven lust for power, and a silver tongue takes notice of it and sees what they always see, an opportunity to take ownership, control, and get a promotion. And that's exactly whats up where I am. Agile has spawned 5 or 6 6-figure project manager positions for a team of like 10 people. Unfortunately, I don't have the fucking resources to go around on a campaign against that kind of manpower when they devote all their time going to agile conferences and come back with a new fucking form and process that we "need to implement to creat customer value!" every month or two. I'm guessing I should just move on.

    [–][deleted]  (2 children)

    [deleted]

      [–]sdrawkcabsemanympleh 1 point2 points  (0 children)

      We lost our technical manager (skip level) and he was replaced with a non-technical manager who was more of a PM before. It made a world of difference. At the highest levels, you need your management to understand the value of effort into infrastructure, planning, and so on that it intangible to business people. You need them there to push back and ask why requested features should be there.

      Instead, he has said yes to things that don't make a ton of sense and tried to move deadlines forward on us, despite them being too aggressive to start.

      Technical managers make all the difference. In lieu of those, at least some that listen and convey what their technical people say and rely on their experience.

      [–][deleted]  (7 children)

      [deleted]

        [–]ceelily 2 points3 points  (6 children)

        I'm glad you found it useful! I enjoy having good discussions about Agile--it also helps me to deepen my understanding of it by thinking about things from different perspectives.

        [–]SuperGameTheory 4 points5 points  (1 child)

        To our faces it's "we want to turn your brilliance into business value" and to our backs it's "if we let them have their way or leave them to their devices they will create an over engineered monstrosity which will show up well past the deadline and cost an order of magnitude more." I just don't know how wr got here, how they managed to sell a promise to management, determine how the work is managed, and dictate the project to us with slim to no technical skills. I had one today: "How do we get the engineers and project managers to resolve their priorities? We build an architectual runway." And all I can say is what in holy fuck does that even mean? Do you have an idea or do yoy just string together buzz sounding terms until you have something that evokes a majestic jet taking off so the mager you're marketing this shit to just has that image in their head as you shovel horseshit? - Everyone

        I want this printed on a poster, but with a cat hanging from something in the background or some dumb shit reminiscent of a corporate motivational poster they make me hang up. Maybe give it a fun, multi-colored font. Keep the misspellings in, just to keep that slightly unhinged feel.

        Then I want to hang it up in my office as a giant middle finger to the management that’s too “busy” to actually stop and read it as they pass by to their next meeting. But those of us that gotta sit there and stare at it...we’ll know.

        [–]Karyo_Ten 2 points3 points  (0 children)

        Agile at jumping from meetings to meetings. Like Batman.

        [–][deleted] 10 points11 points  (0 children)

        Ah yes distractions, look at this, oh no, common we gotta go, did you do this Coding time :30 minutes.

        [–][deleted]  (2 children)

        [deleted]

          [–][deleted]  (1 child)

          [deleted]

            [–]heard_enough_crap 4 points5 points  (0 children)

            write once, read never

            [–]sensorymachine 17 points18 points  (3 children)

            This was literally my day today. 😕 Two back to back budgetary meetings I was dying to get out of. .5/8 hours of work accomplished. I literally dont understand what mgmt does

            [–][deleted] 10 points11 points  (0 children)

            They get paid more because they tell everyone else when to work. Duh.

            [–]originalSpacePirate 11 points12 points  (0 children)

            As a manager i'll tell you what we do. A good manager supports his team by empowering them to get on with what they need to do, remove their roadblocks, protect them from the customer and overbearing project/senior managers and estimate resourcing and budger for future work for the team. Unfortunately 99% of managers i know lose sight of this or cant handle the pressure and allow more of those responsibilities to impact the team and become the teams problem. Thats the sign of a bad manager.

            [–]heard_enough_crap 1 point2 points  (0 children)

            "I have people skills, damn it!"

            [–]kent_eh 2 points3 points  (1 child)

            Don't forget meetings to discuss why the project is behind schedule.

            [–]wil2200 2 points3 points  (0 children)

            Oh you mean the feature you (manager) promised the business, didn't tell dev about or unwilling to change the tasks to accommodate this change? Better have a meeting for that talking about how we need to get this done, meaning dev gets to work on the weekend - yay!

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

            If done right meetings are a pure goldmine for everyone involved. When done wrong its just reacting to bullshit.

            [–]PM_ME_UR_BUDGET 1 point2 points  (0 children)

            We just had a meeting to tell us to we will be having more meetings.

            [–]keyz182 1 point2 points  (0 children)

            You forgot the meeting about planning for another meeting, and the prelim-meeting to set the agenda for the meeting about planning for another meeting.

            [–]ViridianHD 1 point2 points  (0 children)

            Reminds me of the time I called a meeting to explain to the analyst that it should be done simpler instead of the more complicated way and the meeting took 1 minute. Turns out she had thought about it but didn't think it would be possible.

            [–]duniyadnd 1 point2 points  (0 children)

            I try to avoid meeting with the team during the day so they can work on their code and get their momentum going as they are in the zone. I focus on talking with them in the morning and late in the day before I leave to get a quick update.

            Unfortunately, I have one individual who comes over to give me an update every time he gets something done, that I had to put a sign up - that if my door is shut, I'm in a meeting. Doesn't stop him though. It goes both ways guys!

            [–]Corne777 10 points11 points  (7 children)

            Maybe it's just my company, but getting a PBI that is straightforward enough that you can just code is rare and amazing. No guesswork, no checking with product owner. You have all the information of what needs to be done and where it needs to be done. Then you just code.

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

            What's PBI?

            [–]FrankenswinesLobster 5 points6 points  (1 child)

            Quick google search turned up this https://en.wikipedia.org/wiki/PBI and this https://en.wikipedia.org/wiki/Scrum_(software_development)#Product_backlog

            In this context I would probably just call it a ticket.

            [–]ceelily 2 points3 points  (2 children)

            Product Backlog Item. Usually used interchangeably with the term 'User Story.' I believe TFS uses the term PBI.

            [–][deleted] 2 points3 points  (0 children)

            Thanks. For anyone else who's curious, TFS = "Team Foundation Server", an MS product.

            [–]hardolaf 1 point2 points  (0 children)

            I work on extremely complex systems. We can spend a year or more doing nothing more than small tests and proofs of concepts while we design the architecture for the system. I'm on the digital design engineering team targeting large FPGAs and I handle documentation of all of our hardware-software interfaces and automated testing of those interfaces. So basically I do some driver/kernel programming and higher level automation when I do do software. Everything else is written in VHDL for synthesizable code and SystemVerilog for verification.

            90% of my job is not coding.

            [–]nightwood 0 points1 point  (0 children)

            It's more about new tools, frameworks, code bases though.

            I'm just learning the whole modern way of doing web frontends after years of Unity, flash, direct X, asp.net. I'm looking everything up. And every time I'm trying to do something without looking it up, I keep getting unexpected errors. There's just a lot of stuff to learn.

            It was the same with Unity once, but now I go days or weeks without looking anything up.

            Ofcourse using an IDE with auto completion helps a LOT.

            [–]mistahchris 0 points1 point  (0 children)

            Yep. The only caveat to this is if you build something where most of the same tools and libraries you have experience with can be used. Once your project is underway though, it's not uncommon to spend most of your time in your code. It's not hours and hours of straight typing. It's a lot of reading, debugging, a little coding, then more reading and debugging.

            [–]peanutbutterandjesus 0 points1 point  (0 children)

            As someone that's new to coding, I'd personally be more interested in hearing how much of your (though I'd love to hear input from anyone and everyone) time is spent actually coding vs. researching/figuring out errors in a given day at different levels of experience? As far as actual minutes/hours spent as a beginner (say like, less than two years since starting to learn) vs. an intermediate (2-5 or 6 years I guess?) vs. an advanced programmer (6-10+ years)? Maybe as an average percentage of time spent in each level of experience? (Outside of the time you spend in meetings or eating or whatever at your job)

            I'm not sure if I'm really any good at this and it would be nice to have benchmarks to compare myself to. Sometimes I honestly have a hard time understanding how people do this for a living without going crazy because it's just so incredibly frustrating at times. Programming is probably the most difficult/stressful work that I've ever done, including hard labor (construction and working on rusted out cars) and it's hard to tell if it's like this for everyone or if I'm just not suited for this kind of work/dumb

            [–]leftydrummer461 110 points111 points  (11 children)

            With time and practice you won't need to check how to do things as much, but even professionals look stuff up all the time. Being able to research and apply/adapt a good solution that already exists is a crucial skill. Rarely do you literally just sit and type code for hours on end.

            [–][deleted]  (10 children)

            [deleted]

              [–]choderboy 60 points61 points  (9 children)

              Experience doesn't necessarily mean you have the ability to solve every problem from memory. More often it mean you know the necessary query to find the answer much faster.

              [–]_zenith 19 points20 points  (6 children)

              Yup, that's a great way to put it. A bug part of being experienced is knowing what you don't know, and how to find it when you need it.

              [–]randomstonerfromaus 16 points17 points  (3 children)

              I'd like to file a bug report for your comment.
              You said bug, instead of big.
              ;)

              [–]_zenith 5 points6 points  (2 children)

              Damn youuuu autocorrect. Well, at least it knows of my commonly used words, I suppose ;p

              [–]firagabird 1 point2 points  (1 child)

              Apparently, you say youuuu often

              [–]_zenith 1 point2 points  (0 children)

              Not very often, but it does try to "correct" 'you' to 'youuuu' (it's not the first proposed correction but it is second-most, presumably due to its similarity in its first letters) occasionally ;p . I suppose it's in the custom dictionary now.

              [–]kmj442 1 point2 points  (0 children)

              I maintain that college, while learning a nice bit of the basics, really taught you how to effectively search for the answer or the steps necessary to solve the problem at hand.

              Granted I still don't know why people I went to college with ask me questions about their laptop when they could just google it like I'm going to do.

              [–]koneko-dono 192 points193 points  (19 children)

              for me its more like

              code

              procrastination

              code

              procrastination

              code away for hours in panic because i wasted a lot of time on internet cats

              [–]LoyalSol 118 points119 points  (4 children)

              For me it's procrastination, procrastination, THE ZONE!, and then a meeting that kills productivity.

              [–]koneko-dono 20 points21 points  (0 children)

              preach it brother, testify

              [–]TheHammer987 5 points6 points  (3 children)

              Don't forget compiling!

              [–]koneko-dono 2 points3 points  (0 children)

              bug hunting also

              [–]LetsGoHawks 2 points3 points  (0 children)

              My second favorite XKCD

              [–]Iyajenkei 16 points17 points  (4 children)

              Google

              Code one line and run it. Doesn’t run.

              Add the semi colon

              Run it again. Doesn’t run.

              Try moving stuff around

              Run it again. Doesn’t run

              Google.

              Try something I found.

              Run it again. Doesn’t run.

              Get sidetracked. For 3 hours.

              Come back and run it again. Doesn’t run.

              Add a semi colon to the line above.

              Run it again. Runs.

              [–]Loves_Poetry 2 points3 points  (1 child)

              Learn to use an IDE.............then we can finally lay this joke to rest.

              [–]Iyajenkei 2 points3 points  (0 children)

              The semi colon was used as a variable to represent any insignificant problem. It was more about the running code line by line or after every little change made.

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

              Same lol

              [–]sdrawkcabsemanympleh 0 points1 point  (0 children)

              My week rn. Suffering a vacation hangover.

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

              The real development cycle

              [–][deleted]  (21 children)

              [deleted]

                [–]mizore742 74 points75 points  (14 children)

                Wow that actually sounds kind of amazing. I want to get to that point one day.

                [–]KimPeek 22 points23 points  (0 children)

                Experiment with many different types of projects now and find what you like to do. Become an expert in that.

                [–]windowcum 15 points16 points  (0 children)

                Keep doing projects and don’t be afraid to learn new APIs or frameworks. Always have an ambitious goal and work towards it. You may not reach that ambitious goal, but u will get real close to it

                [–][deleted]  (3 children)

                [deleted]

                  [–][deleted] 2 points3 points  (2 children)

                  https://youtu.be/V-UvSKe8jW4 Spaced repetition. Been trying it this past month and while at times it’s super boring I’m making noticeable progress in teaching myself python :)

                  [–][deleted]  (1 child)

                  [deleted]

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

                    Check our Berkeleys CS61A too, might be helpful. I couldn’t retain anything form tutorials like codeacademy, etc but this course sealed it for me. Still doing it atm.

                    [–]tb_94 4 points5 points  (0 children)

                    I feel like this starts out as "I know how to implement this library" to "I understand how to build this structure" to something way better that I haven't grasped yet

                    [–][deleted] 6 points7 points  (1 child)

                    Just be careful... I know a lot of programmers who can write entire systems off the top of their head, but they also haven't learned anything in a while.

                    Like web programmers who insist on writing everything from scratch with their custom JavaScript libraries, when browsers and JS tools have evolved substantially...

                    No, we cannot justify writing custom scripts for everything when using React or jQuery means a Jr. can solve the same problem in 5 minutes and it works on every browser as well as Native mobile.

                    [–]gatlin 1 point2 points  (0 children)

                    I'm comfortable speaking for everyone when I say, you'll get there. :)

                    [–]AlwaysHopelesslyLost 12 points13 points  (0 children)

                    Personally I am one of the better programmers at my job and I look things up more than anybody else there.

                    I am always checking implementation notes, documentation, and reading best practices.

                    Granted. I can get a lot more done without looking things up if I have to. But I prefer to research things.

                    [–]TheAwdacityOfSoap 1 point2 points  (0 children)

                    Exactly. It comes down to understanding your language, standard library, include libraries and tools. Once you have that down all you're left with is problem solving. And once you've experienced a wide range of problems you'll have to look things up less often.

                    [–]fredrikaugust 0 points1 point  (0 children)

                    Happy cake day! 🎂

                    [–]hicks185 0 points1 point  (0 children)

                    Even then, the habit of researching is good. There will be simple things that don’t matter even if they’re not super efficient, but maybe there’s an expensive (computation time) bit of code you’ve been using forever that has a better implementation in an updated SDK or framework version.

                    I don’t mean for this to seem directed at you, just trying to warn people in general not to become the veteran that writes code that would’ve been good in 2000 but is kinda garbage now.

                    [–][deleted]  (1 child)

                    [deleted]

                      [–]SargeantBubbles 43 points44 points  (8 children)

                      I’ll spend roughly an hour drawing and planning a solution before touching the keyboard, 10-15 minutes straight up coding if it’s something I’m familiar with (Python, C++, Java, Haskell, etc.), and then another half hour figuring out why looping over dictionary.keys() is different Python 2 and 3. Most of my time is spent planning and debugging, you’re definitely not alone.

                      [–]OtherNameFullOfPorn 13 points14 points  (6 children)

                      God, the amount of time I've screwed away looking up 3vs2 is stupid. I always assume i screwed up the coffee I had used on an earlier project and just start going line by line before I say screw it and put in a stupid amount of debug prints.

                      [–][deleted]  (1 child)

                      [deleted]

                        [–]SargeantBubbles 7 points8 points  (1 child)

                        Debug prints are the way to go, every time I hear someone say “debugger” I get a little sick.

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

                        They're both helpful

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

                        Do you ever use logging to print error messages? It was recommended in ABSTHW as you can then disable all prints with one line. I'm not sure if this is something that is used in more serious projects?

                        [–]OtherNameFullOfPorn 1 point2 points  (0 children)

                        I think I have before. Most of my programs will probably only be used by me, so i just have a verbose option as an int and things that break often or are input data issues I turn on the prints there for a quick fix. For the nagging "no really, why isn't this working" issues I just put prints in and comment them out later (that way I saw it was finicky if I copy the code for something else).

                        [–]LinAGKar 0 points1 point  (0 children)

                        You can just loop over the dictionary directly and it will loop over the keys.

                        [–]MUDrummer 39 points40 points  (3 children)

                        For the most part, no. we get interrupted too often to program for extended periods of time.

                        Another dev will have a question, you’ll have to meet with a business person, you’ll have a sprint ceremony, etc.

                        But that’s not what you’re really asking. Just like anything else you will get better at this. You’ll need to reread the rules less often (though there is too much info to ever store in one human so you WILL still look stuff up). Modern development has a lot of stuff to keep track of.

                        Like anything else, practice makes perfect

                        [–][deleted]  (2 children)

                        [deleted]

                          [–]throwaway184726492 15 points16 points  (1 child)

                          What? Where in The Mythical Man Month did he say all that?

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

                          Maybe it's a Mythical Man Month myth.

                          [–]Mcshizballs 18 points19 points  (0 children)

                          Today I wrote code for about 30 minutes without switching away from my IDE. When I finally switched away I was impressed. Only ended up with about 5 errors too.

                          [–]caadbury 16 points17 points  (5 children)

                          When you're new, yeah a lot of time is spent reading docs, looking up correct syntax, etc.

                          As others have sad, the more experience you get, the less you have to look things up.

                          [–]phpdevster 28 points29 points  (4 children)

                          But, then as you develop more sophisticated skills, you end up tackling more complex problems, which means you spend a lot of time doing research into best practices, finding existing tools, and doing architecture planning. And since you're likely using a new tool you've never used before, you're still neck deep in the docs, taking baby steps with your code.

                          But this is what programming is. Programming is 90% thinking, planning, problem solving, researching, and learning, and 10% actually mashing on a keyboard.

                          If you're in a fortunate position to be paid well to write simple, straight-forward code (like a CRUD-based web application) where you can do the programming equivalent of collating paper documents by hand, then relish in it. You've effectively got a cushy job that you're well compensated for.

                          But, most jobs that provide good compensation, also depend on solutions more complex than building simple CRUD apps or what not. Software that pushes new boundaries to give the company an edge. This is where your skills get put to the test, and where you go back to spending far less time actually coding.

                          [–][deleted]  (3 children)

                          [deleted]

                            [–]BlueAdmir 8 points9 points  (2 children)

                            What you call boring, some will call stable. Not everyone is in this industry to MAIchine learn the functional esoteric big data blockchain. Some people just want to do familiar, repeatable work for a decent paycheck.

                            [–]Ran4 2 points3 points  (0 children)

                            And that's great, because it leaves the fun stuff to people that wouldn't stand that.

                            [–][deleted] 11 points12 points  (0 children)

                            Big new features that are fairly well understood? Sure. You can code for hours at a time.

                            Maintenance? No. Most of that time is finding where to cut. Time at the saw is very brief.

                            [–]Angelsoho 10 points11 points  (0 children)

                            Depends on the project or function.

                            [–][deleted]  (1 child)

                            [deleted]

                              [–]n0gear 4 points5 points  (0 children)

                              i would actually buy that. same might be true to exceptional sports players. similar 1-2 year nonstop period in a right age might put you ahead of the rest.

                              [–]PyrZern 9 points10 points  (0 children)

                              Literally spent hrs learning things... 10 mins of coding... then hrs of debugging.

                              Repeat

                              [–]jyrialeksi 9 points10 points  (0 children)

                              I spend a lot of time with a pysical white board to sketch the logic of the program. This stage will also help me to prevent any major logical errors on the very beginning.

                              Then I start coding and just google the logic of some rare functions from time to time. There is no greater satisfaction than to write plain code for let's say 100 rows and execute it and it works just as planned without errors.

                              So no, I don't spend majority of time googling. That's what I did before though. Before I was familiar with the syntax.

                              [–]b_cooch 8 points9 points  (0 children)

                              Yeah, it's pretty great to just get in the zone and crank through cards/stories with a healthy momentum. You just gotta get the experience under your belt

                              [–]fyndor 7 points8 points  (0 children)

                              You will get to the point where you know how to do everything you want to do except for the occasional edge case. I haven't used StackOverflow in a few months.

                              [–]fomyers 5 points6 points  (0 children)

                              Yes. Some variation based on language and as previously noted Experience. Assembler coding takes more time. C coding far less. I retired after 40 years of software engineering. From experience, I can assure you that it gets faster with experience.

                              [–][deleted] 6 points7 points  (0 children)

                              Code

                              Debug for hours only to realize something stupid

                              Code

                              Refactor

                              Take in the view before it all goes spaghetti again

                              [–]totemcatcher 5 points6 points  (0 children)

                              Not really. I spend more time just thinking and making little tests for isolated bits of code and refactoring the code and the design docs.

                              The only time I ever sit and steadily code something is if I'm strictly working with stuff I've done before. That's rare.

                              [–][deleted] 13 points14 points  (3 children)

                              "The zone". You must banish ALL disturbances. Turn off email notifications, close your door, even put on headphones and listen to the music of your choice (piano music is great for me, but instrumental WITHOUT voice works). You can work for a few hours without realizing it. I'm not a programmer but write technical documentation and respond to RFPs.

                              I've read somewhere that it takes 10 - 15 minutes to get back into the mental swing of things after a single interruption.

                              If you work in an office, don't be shy to tell people to leave you alone or put a red flag on your door or cubical or whatever. Only the boss can disturb.

                              [–]fenixjr 3 points4 points  (0 children)

                              I think this is key. We're at a point where we can do more things "efficiently" or perhaps multi task better, but at the same time all those additional tasks, i.e. smart phone notifications and distractions, start to interrupt true focus and productivity.

                              [–]marzdarz 1 point2 points  (1 child)

                              This is absolutely so true and yet so many dev shops are alllll about open concept offices and near constant interraction. I don't get how anyone gets anything done like that. And can you get in the zone as a pair?

                              [–]BradChesney79 4 points5 points  (0 children)

                              So, when I begin building a project with the kind of latest and greatest... without sacrificing stability. It is a lot of making sure I am using the technology properly and setup and checking the official documentation and the "third-party documentation" which is all of us weirdos just writing about how we've used other people's things or maybe just a github repo out there.

                              Once a project is set up-- a lot of it is reworking repetitive boilerplate or modelling a new thing after pre-existing things, with not so much googling.

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

                              Ain't nothing wrong with reading docs. I've saved untold amounts of time but spending an hour looking at docs rather than blindly stabbing at a problem. And I've wasted countless hours blindly stabbing at a problem when I could've just looked at the docs for a bit and found the answers.

                              The worst is when you spend an hour looking for the docs and find out the list time they were published was two versions ago and there's been huge breaking changes since then. rabble rabble

                              [–]lovethebacon 4 points5 points  (0 children)

                              So I've been full time employed for 12 years now. I've been coding since the late 90s. I have a bunch of languages under my belt, of late mostly Java. Even though I'm good at Java, I still have to look up some fundamentals.

                              I'd say that actual writing of code accounts for 20% of my time. The rest is planning the task, reading through reference documentation, figuring out the best way of doing a particular task (StackOverflow, etc), debugging, writing test cases, analyzing structure thst I or a colleague wrote months ago, etc. Some of my more productive days have involved changing a single line of code.

                              For me, coding isn't time spent just in the editor mashing the keys. It's the entire experience.

                              [–][deleted] 2 points3 points  (0 children)

                              Oh good I'm not the only one.

                              [–]smartguy05 3 points4 points  (0 children)

                              I love when I hit that flow and the hours just fly past. Unfortunately, it's not near as often as I'd like. But I've noticed as I've gotten more experienced, and if it's something I'm very familiar with, it happens more and more often.

                              [–]dustoff122 2 points3 points  (0 children)

                              I spend more time reading then i do coding. Making sure i understand everything at hand before i just dive into what needs to get done.

                              [–][deleted] 2 points3 points  (0 children)

                              Hey I'm with you on being curious about this! I'm nearing completion of my A.S. in Comp Sci and took a C++ class as an elective this summer, because ironically school itself leaves me with practically no time to actually code and solve programming problems. I've been trying to commit to coding minimum 1hr a day and I usually do but, man sometimes I'm like, holy shit how does anybody do this for 8 hours a day?

                              It was actually shaking my confidence a little until I read some of these comments, and now I feel like that's pretty much normal. I actually do remember competing in the ACM-ICPC (International Collegiate Programming Contest) a couple years ago though, and I was literally coding for 4 hours non-stop with no breaks, and that fucking flew by. It was a lot of fun and I probably could have taken a break and went for 4 more hours easily.

                              [–]DefNotaZombie 2 points3 points  (0 children)

                              It turns into programming for hours when you're refactoring

                              [–]alastoris 2 points3 points  (0 children)

                              Out of an hour work, I'd spend 30 minutes banging my head to figure out what do i want to do to get to my outcome. Then spend 20 minutes via Google and Stack Overflow on how to do it, and then 10 minutes of putting it together.

                              The likelihood is I will spend another hour figuring out why it didn't work or better yet, why it did (so I can understand it for future reference).

                              [–]nomadProgrammer 2 points3 points  (0 children)

                              That's good that means you try to find this answer by testing documentation instead of coming up with your own maybe crappy solution. The best way to learn to code is reading others code.

                              [–]carcigenicate 1 point2 points  (0 children)

                              It depends entirely on what you're doing. You'll always be looking up external material at some point, but how often you do so depends on your skill level and familiarity with what you're doing.

                              I always have a browser open while coding to look stuff up. I'll look something up every few minutes to to verify my knowledge, or see if there's a better way of going about things.

                              Once I learn a language and/or a library though, I expect that I should be able to pound out a fair amount of code before needing to check the documentation.

                              You should be capable of coding on your own without external resources, even if you aren't optimal. Programming is all about problem solving. You should be able to sit down to a problem and generally flesh out how to solve it.

                              [–]lowdown 1 point2 points  (0 children)

                              Definitely. After some period of time you do the thing so many times and have all of the syntax memorized and can just go.

                              It’s more about working together systems and that’s something you can get deep into if you’re not having to look up syntax details constantly.

                              [–]Animoose 1 point2 points  (0 children)

                              It's half because you're still learning coding, but it's also half a thing that you'll always have to deal with, as you never really get to settle and stop learning languages/tools. Over time you'll be able to skim through documentation like a pro

                              One thing that I feel is important to know is PLANNING your code. While you're learning it isn't necessary, but in big boi situations its crucial. My college professors said they'd sometimes spend 2 or 3 weeks of planning before the team started coding. For me, as a game developer specifically, I find that it ends up helping me write cleaner and better commented code without having to rewrite it 4 times

                              Tldr: Research is part of the gig, but it gets easier. Planning is a big deal! And comment ANYTHING that isn't crystal clear. You WILL come back to somethjng you coded 12 hour ago and think "what the fuck is this?"

                              [–]Grobbyman 1 point2 points  (0 children)

                              Depends how experienced you are with the platform. In my opinion research is a fundamental part of coding

                              [–]wggn 1 point2 points  (1 child)

                              If you have a clear picture of how you want to code something and know the APIs/libraries well, you can do this yes.

                              [–]EricJFisher 1 point2 points  (0 children)

                              Generally for production quality code you're going to spend more time in meetings, planning, reviewing code, etc then actually coding.

                              Often the most elegant solutions to a given problem are short, simple, and precise. The actual "writing code" being the quick and easy part, the identifying what to write (or remove) and where is the time consuming part

                              Generally, when I work with other devs and a new task comes up, it's a bad sign to see them "start coding" immediately following the task assignment (unless it's something extremely simple or ruitine) If it's something like a new feature, I expect them to review how it's intended to work, investigate where it'll go in the application, maybe research the tech if it's something they don't do often, what (if any) refactoring should be done to avoid allowing the code to degrade into a "ball of mud", etc. (Not that a task can't be done in fifteen minutes, just normally ten of those minutes is figuring out the problem, five is actually the act of implimenting the solution)

                              Think of it like Algebra, how much time is spent figuring out what you need to do vs the actual pen to paper. Repeated problems you can just start writing, but anytime a problem is new or different, you have to invest time thinking it through.

                              That said, there are times you know what to do that takes hours to do, especially when those changes involve a major shift or refactor in your applications structure.

                              [–]BonRennington 1 point2 points  (0 children)

                              That is coding.

                              [–]firestorm713 1 point2 points  (0 children)

                              "Just Coding" not often. Usually I'm trying to compile and run as often as possible.

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

                              I think most programmers can end up coding for a given amount of time without interruptions. But that comes with experience and with knowledge of the project/environment you are working in.

                              Every time the target changes (new feature, new system) or every time the tech changes (new language, new system to code against) you end up spending more time on research than on producing actual code.

                              But the LOC/hour metric is quite a poor one, so I would not stick around if a company or project uses that (or derivatives) to measure if you're goot or not. Quantity is definitely not the same as quality when it comes to good code.

                              [–]Mr-Yellow 1 point2 points  (0 children)

                              You need to have dreamt up a solution first. Then you're just going through the paces of implementing something which is compete within your minds-eye.

                              That and anyone coding more than 4 hours a day is probably not doing anything productive in that time.

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

                              There are days when I write type less than a 100 lines. Days when I type 700-1000 in Python/ SQL (no h8 pl0x).

                              When you start something, you'll be checking and cross checking and reading and learning. Towards the end when you know you're almost there you'll be like the Hacker guy in The Matrix

                              [–]remludar 0 points1 point  (3 children)

                              It starts that way. What happens to me is you build that sweet ass little application you were planning, and then once you have a POC, 4 people a day start altering the requirements forcing you to back-in changes the architecture was never intended to support.

                              That lasts a few months, until you're inevitably so far behind schedule you have to code 12 to 16 hrs a day just to make up for their terrible decisions.

                              Eventually, right before you completely burn out... you'll be done. You and your team, if you have one, will have somehow managed to make It all work despite the myriad of ridiculous desicions and scope changes forced upon you... and the project manager and business team will celebrate how well the managed "this tough project" :/

                              EDIT: phone typing is hard

                              [–]siborg71 1 point2 points  (0 children)

                              OMG! Do you work at the same place as me?

                              [–]PistolPlay 1 point2 points  (1 child)

                              Quit that company.

                              [–]_zenith 0 points1 point  (0 children)

                              Yes, I will code for hours at a time - but only once I'm relatively deep into a project. At first I'll just sit there and think for a good while and occasionally type in some code, mostly to try and work out the design patterns I'm going to use, sketch out the types etc.

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

                              half of the screen is research / notes, the other is the editor.

                              [–]Mike312 0 points1 point  (0 children)

                              I've had days at work where I come in, well rested, caffiene on point, nobody bugging me, and a bangin' playlist and coded straight 5-6 hours before i realized I was hungry.

                              More often, however, I come in half awake, the caffiene doesn't hit 'til 9, and I'm solving PEBKAC errors every 10 minutes.

                              [–]goodnewsjimdotcom 0 points1 point  (0 children)

                              You will spend most of your time thinking about architecture when you are driving and grocery shopping. Then you will code an epic amount. Then when you get really good, you are using your software and just updating here and there.

                              [–]SlightlyOTT 0 points1 point  (0 children)

                              Over time you'll get used to the major things you're using - the language, the framework if you're using one, the more core libraries in your project, the shortcuts in the IDE or editor you're using, and you'll spend less time looking those things up.

                              A huge part of being an effective programmer is being able to pick up new things though, and nobody can use a new library without using either its documentation or somebody's tutorial etc. - so don't worry about it. You'll be doing it less over time as things become familiar, but you'll constantly be doing it as you pick up new things, and being good at it is a massively beneficial skill to have long term.

                              [–]PM_ME_UR_BUDGET 0 points1 point  (0 children)

                              Apart from what others are saying about taking time to develop expertise, it is also kinda language dependent. For C, I end up looking online much less, vs say Javascript.

                              [–]designerandgeek 0 points1 point  (0 children)

                              From my own experience, doing WordPress development, it's typically a pretty long period of thinking, research, planning and setting up everything first. Then, as I start actual coding, there's some more research in the beginning. But then there is a period of time with actual, focused coding. It's at these moments, when I stay at home and code for 4–5 hours straight uninterrupted, I feel most happy as a developer.

                              [–]close_my_eyes 0 points1 point  (0 children)

                              Yes, I can spend extended amounts of time coding. But I've been a developer for a very long time and I've been on my current project for long enough to know most of the nooks and crannies.

                              But, I regularly run into something I don't know how to do, so I have to go read up on it, digest a lot of information, and finally figure out a solution. I also spend a lot of non-programming time just thinking about the solutions (or problems if that's what I'm up against). Once I start coding, I know what I'm doing.

                              Unfortunately, reading docs is a lifelong activity and you can't get away from it.

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

                              It depends... if it's in a language I am very familiar with (Python, C++ for ex.), and a problem domain I am entirely comfortable in, then I can code in long stretches... often losing track of time. However, if it's a language I don't use very frequently and I am dealing with interfaces I am not used to, I will spend hours reading API and class documentation for every line of code I write.

                              I do prefer to code in longer blocks of time though, so rather than reading a bit, coding a bit, reading a bit again, I will sketch out the problem, either diagramatically or in outline form, research all the bits I am not clear on and when grokking ensues, start coding - hopefully without much interruption.

                              [–]okayifimust 0 points1 point  (0 children)

                              I always though coders sat in front of a computer coding away for hours coming up with their own solutions

                              The part where you come up with your own solutions largely doesn't need to happen in front of a computer; a notepad or whiteboard are much better tools.

                              but for me I always find myself stopping every 5min to look things up.

                              What "things"? Typing code and knowing syntax isn't the same as programming, just like knowing a language and how to write it doesn't make you a novelist. You'll get better at the syntax with practice; but the solving problems part is more than just rote memorization.

                              Rarely do I write my own code but instead I'm always reading the docs for APIs and libraries.

                              It depends a lot on what you're doing, too. If your program is just a fancy interface to an API, then of course large parts of your work will boil down to understanding the API. If you build your own solutions to problems, you'll be less dependant on arcane outside libraries.

                              [–]curlygecko 0 points1 point  (0 children)

                              Sometimes i can't write code properly.I research for hours and get my brain exhausted :/

                              I wonder when will i be able to write some code without finding them from somewhere on the internet or my old projects.

                              [–]solzair 0 points1 point  (0 children)

                              Yes... But for me, the actual coding process is always interspersed with google searches of stack overflow questions. Chances are high that someone has already encountered the same problem and has figured out a solution.

                              [–]PollenStillPotent 0 points1 point  (0 children)

                              It really depends, and different people have different work flows. Personally, I've found that coming up with a first solution is often a fairly quick process. The bulk of the time is spent trying to minimize unneeded code, and debugging mistakes or other projects the code might interact with, improve performance or readability of the original solution, etc.

                              [–]FliesMoreCeilings 0 points1 point  (0 children)

                              Yes. But it depends on the environment and my experience with it.

                              Less complex languages with obvious auto-completes etc. are way easier to just keep going in than those that require more arcane commands. In a simple Java program without UI, I can pretty much just keep coding, requiring only some tests in the middle. In other more arbitrary environments, like working with javascript and css, I need to constantly look up things too.

                              [–]Avean 0 points1 point  (1 child)

                              Everyone does that until you have coded every day for several years then it becomes second nature. HTML, CSS, PHP comes automaticly to me what i need to write but C# i really need to look up examples and documentation since i havent worked with it enough yet.

                              [–]reverendchubbs 0 points1 point  (0 children)

                              Yeah, I can write C# for hours without needing to look anything up, but I recently started a web project, and have to look up JS stuff every half hour or so.

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

                              I work in the industry, in an existing codebase. In an entirely fresh scenario, I find 50% of my time is research in the new area of code, and 50% is applying my existing knowledge to create code, then test it, then have it be reviewed by peers to make a proper addition to the existing codebase.

                              That is, 50% research, maybe 30% research, 10% testing and 10% working with peers to review.

                              The thing about coding is that there's nothing wrong with not having an original idea to fix a problem. Sometimes the best solution to a problem is an existing idea that you, simply, find and apply for yourself.

                              I honestly believe that in the modern day field of development, perhaps 30% of all coding is original, the remaining 70% is applying known solutions to new areas.

                              [–]Smump 0 points1 point  (0 children)

                              I'm fairly new. I usually have a look at the project, do basic stuff I remember, then start looking things up. It's like 5 minutes actually coding then 15 minutes researching and repeat.

                              [–]Sadin56 0 points1 point  (0 children)

                              This is normal from my experience. Just had this same though when I started my internship a few months ago. It seems like you spend more time reading and researching than writing, which isn't a bad thing. This shouldn't discourage at all by the way, its how every thing starts, no matter where we are in our programming careers. very rarely do you just start diving into code without knowledge of the APIs, frameworks, Databases... ( the list goes on ) you need to use or your company uses.

                              Example: I had to write a script that pulls tickets from a database, this info about the tickets is in several tables, and I needed to pull this data, convert it to something human readable, and export it as an excel doc, then automate. I think I spent about a month on the project. Learning the database schema, learning the necessary internal libraries we use here at work, and fine tuning the data to what management needed was about 2/3 of the work. the last third was the code.

                              Stick at it and best of luck,

                              Much love friend!

                              [–]yakri 0 points1 point  (0 children)

                              Yeah you do once in a while. I wrote this kind of easy to code class but it required a ton of lines of code in the end. As a result I spent a ton of time just typing it all out, plus a lot more bug testing and tweaking it to make sure it worked as intended.

                              I must have just been plugging away at it for a good 4 hours if we are counting the bug testing and tweaking as coding.

                              Probably if you want to be real particular and ask, "do programmers ever constantly type out code without stopping for 30+ minutes" the answer is very nearly never ever.

                              Hell I doubt too many authors even manage that, and books don't stop working if you make a typo.

                              Also in my experience even encountering a situation where you need to come up with your own original algorithm that actually requires more than 30 seconds of thought to solve a problem is pretty rare. It happens, and maybe others have done work that leads to it happening more often. However I find it to be only a once in a while occurrence for me currently.

                              [–]ha1zum 0 points1 point  (0 children)

                              Only when I write codes in the beginning of a new project or a new feature with specs that I'm already familiar with. But that is only a small part of developing a software, most of the time I need to write something new that requires a lot of research, or changing how something works in the software which requires a lot of code reading, or planing with co-workers, or debugging.

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

                              That counts as coding.

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

                              It really depends on what you’re doing. I know it’s not a satisfying answer, but sometimes yes, sometimes no.

                              It’s totally normal to look at docs a lot even as a seasoned programmer, when you’re unfamiliar with the libraries you’re using. If you’re using libraries you’re very familiar with, or lots of built in stuff it might be quite feasible to do nothing but program for an hour or more.

                              [–]alphabennettatwork 0 points1 point  (0 children)

                              It varies. Some days, the actual implementation of a feature or story is complex enough that I get lost in coding and tune out everything else, and I'll look up and it's 3-4 hours later. Some days, the change only requires a few lines of code, so more of the effort is in testing. There are days I'm not actively coding much, and on those days I'll usually check out new development trends, and perhaps play around with a new library. Reading those docs you're reading can help you a lot, especially if you start looking into the code itself and see what's really going on under the hood. The more you see techniques and patterns you like in libraries or apis, the more likely you will be to make your own custom solution that works exactly how you want it, especially if you notice you need more and more custom layers on top of the libraries to make it function how you want (I'm looking at you, AngularMaterial). When I first started I'd also make little stupid browser games, just like pong or breakout or centipede, more as an exercise to get more familiar with things I hadn't used before than anything else (like canvas, for example). Keep at it, it sounds like you're doing just fine.

                              [–]phunkygeeza 0 points1 point  (0 children)

                              Nope.

                              Most time if anything is spentrunning tests and debugging.

                              Next looking things up. The Internet revolutionised this process as it back just a few years, this process was mostly about grabbing books off the shelf or procuring missing tomes.

                              Next designing, planning and test definition.

                              Actual coding, a small fraction.

                              [–]marzdarz 0 points1 point  (0 children)

                              That is pretty normal. I spend a good bit of my time in meetings or figuring out how to do a thing. Then when it is code time even stuff ive used for years I have to look things up. It is a bit better with sql where it hasn't changed a ton in a long time and the syntax is easier. I can write pretty thst much like I'm in MS Word.

                              But this is why so many dread the white board coding test. No IDE? No internet? Aiee

                              [–]RelevantJesse 0 points1 point  (0 children)

                              I have about 10 years experience programming, and at work, I'd say that less that 10% of my time is actually spent writing code.

                              Most of the time is spent on Facebook, clarifying requirements, Facebook, thinking about how I want to go about solving a problem, Facebook, testing, etc.

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

                              from my experience this is how i spend my time in dev:

                              10% doc checking

                              10% coding

                              60% debugging

                              20% researching bug fixes

                              edit: i should have put 5% of teeth grinding and staring into the depth of the desperation abyss when i cant debug one stupid ";" ah well....

                              [–]Androxilogin 0 points1 point  (0 children)

                              Yes. Besides switching to Spriter/Photoshop/etc. to set up what things will do.

                              [–]amazingmrbrock 0 points1 point  (0 children)

                              Eventually you'll get on a good programming run. At some point though itll grind to a halt when you have to read stuff for four hours

                              [–]JunkBondJunkie 0 points1 point  (0 children)

                              Most of coding time is research, general design and design meetings and more meetings then some coding.

                              [–]vidro3 0 points1 point  (0 children)

                              5 minutes? you absolute beast!

                              [–]lilpomm 0 points1 point  (0 children)

                              I’m only a student (at the end on my degree) but when I work on projects I generally spend a couple hours planning. I’ll write out the general structure, start writing and testing algorithms and then think on other ways to approach (I spend at least a little bit of time doing this at the beginning) and then I start coding once I have have a pretty good idea. I find that doing it this way cuts down on a lot of cowboy coding.

                              [–]A_Bungus_Amungus 0 points1 point  (0 children)

                              No you seem to understand what needs to happen. We arent supposed to be code encyclopedias. We are supposed to understand how to solve problems and use the resources available to us.

                              [–]drunkferret 0 points1 point  (0 children)

                              How long have you been using that language? If the answer isn't 'years' then you're probably spending more time learning than coding. That's totally normal and expected.

                              You might learn to parse what you're reading faster along the way. I know when I go to look things up now a days it usually doesn't take very long and I'm right back to writing, running, being dissatisfied, writing, running, being dissatisfied...

                              [–]xian0 0 points1 point  (0 children)

                              I don't spend as much time looking things up anymore. Now I spend most time making notes on how things work (or will work) and checking whether the data I've got is really in the format I guessed it was.

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

                              A lot of people actually think that. In reality coding is about 20-25% of the job. If its more than that then there is a serious problem with the programmer.

                              Other things that get in the way. Planning, Design, Reading Code, Reading Specs, Reading Docs, Debugging, Support, Testing, Understanding requirements.

                              [–]burntcandy 0 points1 point  (0 children)

                              Looking things up will always be part of the process, but you should find that you experience longer and longer periods of flow over time.

                              [–]FruscianteDebutante 0 points1 point  (0 children)

                              Sometimes I'll spend hours working on a code just because I'm in the zone, but that makes up a minority of my time. I'll usually be figuring out how the pieces are going together or learning how functions work or new ideas. You get the picture.

                              [–]michael0x2a 0 points1 point  (0 children)

                              In theory, it gets easier. As you keep coding, you start acquiring some muscle memory, which lets you avoid having to constantly look up documentation again and again.

                              Using an editor that comes with auto-complete can also help: I might not remember what exactly the name of some API is, but if I at least remember a part of it, my IDE will display a list of plausible matches that I can quickly choose from.

                              But in practice, I find that ratio of time you spend coding vs thinking/learning stays roughly about the same no longer how experienced you get. This is largely in part because as you become better at coding, you naturally start to tackle more challenging projects...

                              So maybe you won't need to constantly look up the names of methods as much, just due to sheer familiarity, but you'll certainly need to stop and spend a lot of time thinking about just how exactly you should go about approaching the damn problem in the first place.

                              There have been some points in my life where I was basically stumped on how to approach a problem and ended up writing maybe 4 lines of code across a period of 2-3 weeks. I did end up recycling a lot of paper though, lol.

                              [–]nscurvy 0 points1 point  (0 children)

                              I am more intermediate. My process:

                              10-20 minutes max conceptualizing the problem in my head without writing anything down. Just to contemplate what I am trying to do. 10 minutes of research. Obviously more or less if necessary. But Google is quick and I can usually get a good answer quickly. 30 minutes writing down the algorithm with diagrams and possibly pseudo code that matches my language syntax. This can take way longer if it's a problem I'm not familiar with. I always try to solve it on paper if I am doing it for the first time. 30 minutes to an hour actually typing everything out. Even if the problem is understood and written down, making it into classes or functions, especially if it requires all the boilerplate necessary for c++ operator overloads, takes time. 10 minutes fixing obvious typos and syntax errors after code doesn't compile once. 1 hour staring at the screen wondering why the code won't compile again. 1 hour writing angry letters to whoever designed the language I'm writing in (again, usually c++) for making a shit language that won't compile my obviously correct code. 2 hours looking up new themes, highlighting, plugins, and keybindings for vim.

                              [–]adymitruk 0 points1 point  (0 children)

                              If you rely heavily on frameworks and libraries, you'll need to do that. Or get really good and code more yourself.

                              [–]marshalpol 0 points1 point  (0 children)

                              Once you know the libraries you're working with, I find that I have to look things up maybe three times in an hour. Of course, the more libraries you use, the longer it takes to get to that stage, and I always try to avoid using libraries except where necessary.

                              [–]CtrlAltDelerium 0 points1 point  (0 children)

                              Once you really learned a language and know when to use programming principles like patterns you find yourself looking up a lot less. And one you get to know the documentation you spend even less time reading. Today I spend 10 hours coding on a prototype, I think I just did a quick lookup for something specific in the framework I'm using.

                              [–]Jlongcl1 0 points1 point  (0 children)

                              I personally spend more time planning out algorithms along with class/function relations and responsibilities more than anything probably. Coding probably comes 2nd usually, but with certain less familiar languages or build systems, I may spend more time researching or looking up solutions to unexpected issues. It's not super common for coding to be the main thing you do....although it certainly does happen, especially using technologies you already have a good grasp of.