6 ms·
Reflections on a Decade of Coding
- angarg12 4y agoThere is something magical about the 10 years mark that compels people to write blog post showering us with their wisdom. I crossed that line several years back and my biggest realization is how little I knew back then. I believe it's worth remembering that years of experience is at best a weak predictor of competency. Careers are non linear and someone might growth the same in 10 or 20 years than others in 2 or 3. For the best deconstruction of career growth I've seen around (and one I personally identify a lot with) I recommend this blog post [1] from Carlos Arguelles. [1] https://medium.com/geekculture/career-growth-speed-deconstructed-a8005fec0a25 https://medium.com/geekculture/career-growth-speed-deconstru...
- oh_sigh 4y agoSure, it is a time period that causes people to stop and reflect. I'd wager more people reflect on their lives at 10/15/20/25 years after hs/college graduation than their 11/16/21/26 years after
- awb 4y agoI’ve been coding for over 25 years and I’ve gone through peaks and plateaus. I even ran a successful dev agency 15 years ago, and my coding now is much better now than it was then.
- shrimp_emoji 4y agoInspiring :)
- saurik 4y agoI have also been coding for like 25-30 years, and I definitely continue to get better. I also, though, do continue to get less overall productive... not because my mind is going, but because I am distracted by some new pain in my aging body or am spending more of my time being sad about things that aren't code (these past few years were just brutal).
- Tade0 4y ago> I crossed that line several years back and my biggest realization is how little I knew back then. Mine was that at this mark I already started forgetting stuff which I knew by heart as a junior dev.
- lordnacho 4y agoYes and no, I think decreasing returns is a real thing. 10 years a long time, and you can explore whatever cave you started out in in that time. People regularly go from high school to PhD in an obscure specialty in 10 years. However 10 years is also enough time to explore the depth of one cave along with the openings of 5 other caves. That T-shaped skill set really gets wider in the next 10 years, at least it did for me. The width is also what tells you what you haven't looked at. For me it's Haskell and LISP. Not sure if I've got the monads to go down that route, it might overturn my existing long learned wisdom, something that could be painful with 20 years of experience.
- bobberkarl 4y agoWish i could read it in a pdf-like format
- Supermancho 4y ago> It's really hard to test non-determistic code. I'm willing to eat a lot of pain at design time to avoid doing so. Ironically, this is a lot easier if you unit test the non-deterministic parts. Once you can be sure it's easily testable[1], it also has the side effects of being easier to debug, read, more reliable (in terms of branch behaviors), and more readable. Writing longer functions (his leaning) makes these issues worse, so it's not surprising it's a pain point. [1] Granted, this depends on language. Each language has different language features that make code more or less testable, from a unit testing perspective.
- deleted 4y ago[deleted]
- WalterBright 4y agoI've discovered that adding unit tests to an existing code base doesn't work very well, as each piece of code tends to have too many interdependencies with others. The code has to be organized from the ground up to be compatible with unit tests.
- paulddraper 4y agoI find unit tests to be a good fit for 10% of code. Most of the time, bugs are in the glue.
- beebmam 4y agoI find that most of my development time in my career is spent getting that glue in place! Seems like we need a better way to glue things together and make sure that glue doesn't make a mess of things. Maybe AI can help with this
- jaggederest 4y agoThere are tests that help ensure that things are glued correctly. Functional testing is useful in this regard, and end-to-end (sometimes called integration testing*) is extremely useful in making sure critical parts of the system work. For example, I always try to write a "log in" test, and for systems that take payment, a "payment acceptance" test. Even if other parts of the system have bugs, I want to be able to have existing clients log in, and new clients sign up, no matter what. * though I think integration testing is really "anything that tests more than one system" without necessarily being fully end to end
- beebmam 4y agoNot enough companies use these end-to-end tests you describe!
- jaggederest 4y agoI put them in place everywhere I go, so I'm trying my best! I think in a lot of cases the value is difficult to see unless you maintain them as a priority - they can get out of date and start randomly failing, and that's when they go "the way of the dodo" in most organizations, even though a few hours a month of engineering time deliver significant, useful results for your investment.
- pookah 4y agoLOL. Guy just wants to let his nuts hang after "a decade of coding"...I knew a molecular chemist ex Canadian Air Force pilot that taught himself Russian on a train ride and was a premier Canadian Pathologist out of mcgill that was more humble than this coder.
- jodrellblank 4y agoDid you read the bit where he said his projects "aren't impressive" and that he has "no intrinsic talent" and that he's just "reflecting on what has and hasn't worked for me"? Or click on "emotional management" and read "In keeping with the theme of the rest of this series, I don't claim to be very good at this or to have any deep or generalizable insight"? Or where he says: "I've never had to maintain a codebase for more than 2 years. I've never been responsible for running a long-lived service. Any thing that I report having worked well for me has to be considered in that limited context."?
- stevev 4y agoI have to say it, the author is probably great at programming, but poor at writing. Reads more like a rant, diary with random analogies. Too much noise in explaining their experiences and forethoughts which aren’t really helpful to the reader. Perspective can be explained in one sentence and then move on to core pieces. Apologies but get to the point. Had to use ChatGPT to summarize the main points for one: On Bad Advice The programmer who wrote the post is cautioning other programmers about the dangers of taking advice from online sources without considering the context and details of their specific situation. They explain that much of the advice they have received over the years has been actively harmful to their programming abilities. They suggest that programming practices are mostly tacit knowledge, which is difficult to share and can vary depending on specific situations. The post argues that it is essential to consider the context and details of one's specific situation when seeking programming advice and not to rely too heavily on generalized advice.
- dabedee 4y agoHis writing is subtle and nuanced which is ironically probably why it lacks what you appear to be seeking, the "cliff notes", ai-summarized version of the article.
- deleted 4y ago[deleted]