18 ms·
How can you not be romantic about programming? (2020)
- sokoloff 6y agoI would happily write code for free (and do so off-hours, with my kids, and for side projects). I have the luxury of working in a field where my employer pays me not because I hate what I’m doing and would rather not do it all, but just because they need me to focus on solving puzzles they choose instead of puzzles I choose.
- bspammer 6y agoThis about sums it up for me as well. I feel so absurdly lucky that what I love to do also pays well. If programming paid like shit, I don't think I would be able to stop myself going down that road anyway, in the same way someone who loves painting can't help but paint.
- prox 6y agoThis is a great place to be. Do you think one needs a certain level of mastery to come to that point though? When you are still struggling learning, the endless reading on topic X can be tiring and exhausting, especially in the context of deadlines.
- noisy_boy 6y agoAs a self-taught programmer, I think the level of skill doesn't matter as such. I remember gobbling up a book I found on Unix commands when I was learning shell scripting eons ago. It was a rough start as the whole thing was totally new to me. I was mainly driven by being able to accomplish what I wanted using code (I am very lazy and hated the daily manual execution of the steps). Once I had a poorly setup script working, things that propelled me forward were my need to continuously find ways to refine the code in terms of elegance, performance and brevity - the satisfaction/high of accomplishing these things was enough feedback to get me hooked.
- sokoloff 6y agoAgreed. I think of it as the linear equation y = m*x + b As soon as you get to the point where m is positive (you have learned enough to be able to make things a little better on your own, even if using google for parts), you’re off to the races. m dominates b in that equation as x (time) increases.
- matwood 6y agoI feel the same, and liked that you used the word puzzles. I enjoy solving puzzles, and often I use programming to solve them. Sometimes though it's just a process solution, and things like devops puzzles have their own solution space.
- xwdv 6y agoHow? Writing resource hogging code all day to figure out how to best display obtrusive advertisements is a good start.
- einpoklum 6y agoIf you're doing that, then quit. It's not worth it and you'll regret having done this. You'll find another job. Hell, you'll find another job as a programmer. Don't do this to yourself, nor to us.
- ColonelPhantom 6y agoSure, OP will find another job as a programmer. But I am sure that their employer will also find another programmer. So saying he is doing it to us sounds kind of disingenuous. "Hate the game, not the player." For me, the frustrating part is that our society is set up to incentivize value-decreasing behavior like obtrusive advertisements, it doesn't add anything yet still makes money, unlike things that are essential to the world (mundane example: raising children).
- xwdv 6y agoNah, the pay is good and worth it IMO. I see it similar to being a roughneck on an oil rig or even a coal miner. I make no illusions or romanticize the nature of my work.
- DC1350 6y agoMost jobs are terrible but they also pay less. I think he’s making the right choice. If you don’t believe in trade offs then you’re probably being taken advantage of.
- rufus_foreman 6y ago"After a while, more and more, you’ll find yourself in moments of awe, stunned by the size and fragility of it all; the mountains of work and talent and creativity and foresight and intelligence and luck that went into it. And you’ll reach for the word “magic” because you won’t know how else to describe it and then you lean back and smile, wondering how someone could not." I guess I wish I felt like that about programming. But more and more, I feel like this: "You are an expert in all these technologies, and that’s a good thing, because that expertise let you spend only six hours figuring out what went wrong, as opposed to losing your job. You now have one extra little fact to tuck away in the millions of little facts you have to memorize because so many of the programs you depend on are written by dicks and idiots." -- https://www.stilldrinking.org/programming-sucks https://www.stilldrinking.org/programming-sucks
- superbcarrot 6y ago> because so many of the programs you depend on are written by dicks and idiots Out of all the problems with programming as a job, this is around the bottom of my list.
- rufus_foreman 6y agoI'm working on an app that calls other internal services inside our company, one of them is a call to update an account balance. We were running into this issue where we were getting a 504 Gateway Timeout on the update balance call so I eventually found the Slack room for that team and asked about it. They ignored me for a couple weeks, but I kept asking and eventually someone answered and said yeah you'll get the 504 Gateway Timeout if you try to update the account balance to the same value that it already has. OK, that makes sense to you? What if there was an actual gateway timeout? You would also get a 504 Gateway Timeout in that case. They apparently have no plans to modify this service's behavior. I let it go, I just moved on with my life. I did not find myself awed or stunned with the mountains of work and talent and creativity and foresight and intelligence and luck that went into it.
- infogulch 6y ago
- willeh 6y agoTruly fantastic stuff. I don't really have anything to add other than to say that this made me feel happy about what I do for a living. So much better than reading flamewars camouflaged as blogposts :)
- NikolaeVarius 6y agoI dont really understand the point of this article. Literally any system can be made romantic for the sheer fact that everything has spent hundreds of man-hours building up to it. The cheapest possible ballpoint pen is made up of years of research into the plastics, the machinery required to create bearings with the tolerances necessary, the exact chemical makeup of the ink etc etc. It just seems to be a waste of brain-space to bother with making everything romantic.
- olav 6y agoIt becomes rather interesting in my mind the moment you think about when the thing no longer exists. We loose so many things all the time, the ability to make stuff, the ability to repair things, even the use of drills and hammers quickly fades away for the TikTok generation. I love the notion of the OP and applaud initiatives like the various Smalltalks or https://gpblocks.org/ https://gpblocks.org/ that try to keep the awe in our craft alive.
- haskellandchill 6y agoRomantic? A relationship can be a metaphor for almost anything. Currently I feel abused not by programming but by other programmers. How can you be romantic about programmers? (more broadly: How can you be romantic about people?) I agree with the title paradoxically.
- purple_ferret 6y agoStrange. For me, programming is an emotionless endeavor and one of the hardest aspects about doing it day in and day out. Sometimes it feels like a higher level form of data entry.
- eigenhombre 6y agoThis interests me. What kind of programming do you do? Emotion is very important to me as a programmer. Often my emotions know when something isn't right before my "rational" mind does, hinting that it's time to slow down and dig deeper. I've found a number of bugs this way over the years. In fact, my team has long recorded our emotional state with every commit, with a numerical score: "h:1" through "h:5" at the end of each commit message. If you pair on the commit, the lowest individual score prevails. Anything other than a five is a sign that something deserves a little reflection. (Threes or lower are quite rare, happily.) We always said we were going to use these as metrics for defect analysis, but our defect rate is already pretty low. I suspect the main value is just that short pause for reflection before we commit.
- AlotOfReading 6y agoI've never considered using qualitative methods on code like that, but the aesthetics definitely highlight where some of the worst bugs lurk.
- burntoutfire 6y ago> Emotion is very important to me as a programmer. Often my emotions know when something isn't right before my "rational" mind does, hinting that it's time to slow down and dig deeper. I've found a number of bugs this way over the years. Sounds like intuition rather than emotions.
- eigenhombre 6y agoYes, but I rely on my emotions to tell me when my intuition has something to pay attention to.
- mns06 6y agoIt's an interesting question: which are the lines of code most frequently executed in the world today?
- ianmcgowan 6y agoMy wild ass guess would be one of: a) some high frequency trading algo, b) ray tracing/collision detection in popular game engines, c) the inner loop of google's spider, d) something common to mobile devices (maybe something in wifi or cell service?), or (most likely) e) the bitcoin hash algo. It makes for an interesting "how many manholes in Manhattan" interview question, and how you could possibly quantify your guesses... Imagine being the author of those lines of code, if it was possible to figure out :-)
- burntoutfire 6y agoI'd add TCP stack in Linux (kernel). Should be hammered constantly on servers of the world and also gets lots of usage on smartphones and IoT stuff.
- abc_lisper 6y agoNope. IO would be orders of magnitude less than computation
- rcgorton 6y agostrcpy, strlen, strchr, memcpy, and their varients
- panic 6y agoMy money is on Linux's cpu_idle_loop().
- amelius 6y agoDon't forget bitcoin::compute_hash()
- 6y ago
- andrewflnr 6y agoWhile I don't disagree with the article, this quote better sums up how I feel about programming. > The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination... Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself... The magic of myth and legend has come true in our time. -Fred Brooks, in The Mythical Man-Month In deference to the counterpoints in this thread, a lot of the "poetry" we actually encounter seems to have been written by Vogons.
- ljm 6y agolet var i be none while var i is less than j i is i plus one
- btschaegg 6y ago> Oh freddled gruntbuggly, ;-)
- higerordermap 6y agoTypeError: unsupported operand type(s) for +: 'NoneType' and 'int'
- pjmorris 6y agoI was burned out at a programming job and thinking about finding something else to do when I first read this section in 'The Mythical Man Month.' It reminded me of the wonder I'd felt at first, and that was still in there, and it became part of what has kept me hanging around the profession for another 30 years or so, so far.
- henrik_w 6y agoI love that quoute! The whole "The Joys of the Craft" is well worth reading. It also includes: - The sheer joy of making things - The pleasure of making things that are useful to other people - The fascination of fashioning complex puzzle-like objects of interlocking moving parts, and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. - The joy of always learning, which springs from the nonrepeating nature of the task It really captures what I love about programming: https://henrikwarne.com/2012/06/02/why-i-love-coding/ https://henrikwarne.com/2012/06/02/why-i-love-coding/
- Waterluvian 6y agoYesterday I set up a Django server that exposes some tables through an API that's fully queryable and filterable and sortable and paginated. And I wired it right into an antd table component on a Web app. And the whole thing is just so nicely interactive and #%$&ing clean and beautiful and elegant. I felt such joy making it. Then I had a moment of thinking, "wow the CEO and friends are going to be blown away." Until I stood back and realised that a data table isn't novel or interesting and they won't even be aware of the underlying beauty. They're still blown away by a lot of what I do, but it's never the things that I find truly beautiful and romantic.
- deleted 6y ago[deleted]
- ZephyrBlu 6y agoI think people in every profession would feel like this sometimes.
- rmason 6y agoIf you have multiple startups competing evenly in the same space why does one succeed and the others fail? The founders ability to execute is paramount. But of equal importance is that one product has a little bit of magic. Something that makes the user smile. If it was easy every startup would have it. You might say they all do the same task why spend extra time so the user has an incredible experience. Because in my opinion that's how you win.
- tinyprojects 6y agoReally enjoyed this, thanks for sharing!
- einpoklum 6y agoHow? By looking at the codebase I'm working with right now, that's how.
- dsego 6y ago> There are lines of code floating around on our computers that haven’t been executed by a machine in years and probably won’t be for another lifetime. Others are the golden threads of this world, holding it together at the seams without no more than a dozen people knowing about it. Remove one of these and it all comes crashing down. Beautifully said, although I find it rather horrifying.
- imbnwa 6y agoBut this is what Taleb and Zizek have been drawing attention to for years, its just that this predicament is the case at every level of society
- rcgorton 6y agomany MANY reasons VPs who insist on micro-managing technical decisions even though they really do ignore technical recommendations of highly skilled engineers. (Tom Hamilton, formerly of Digital Guardian)<br> VPs who refuse to share technical aspects of the business plans/goals (for a small company) with engineering because "well I can't share that with you" Steve Weingart when @ Liant<br> Anything involving/supervised by Ben Bar-Haim formerly AMD. Ben successfully constructed an incredibly monolithic bureaucracy in AMD - with a huge amount of overhead. Software groups not based in Markham Ontario got Trashed. <br> So yes, lots of Manager/VP reasons to hate programming
- picks_at_nits 6y agoI am deeply, deeply romantic about programming. I consider it an act of self-actualization. But answering the question literally, I am not representative of everyone in the industry, and that's a good thing. It's easy to feel romantic about your vocation when you have a number of reasonable options for achieving modest financial security, and you thus had the privilege of choosing the one that most closely matched your idea of self-actualization and self-identification. Not everyone in this economy has the same set of choices. For many, programming is the lowest-risk way to put a roof over their head and feed their family. We can make up little myths about how we romantics are obviously more passionate, work harder because it's our dream, are more deeply engaged, and so on. But in the end, I think we'll find as we look around that those of us who feel romantic about something that is also an excellent way to make money at this particular place in time and space have won a lottery of sorts, and are definitely in the minority. That's not a bad thing.
- sombremesa 6y ago> For many, programming is the lowest-risk way to put a roof over their head and feed their family. It seems that to some extent the romantics are actually indebted to this cohort for pushing forth the ideas of fair compensation and fighting for workers' rights, because people who are passionate about their work usually end up getting taken advantage of.
- picks_at_nits 6y agoMy own writing on the subject of this industry falls into two pretty cleanly divided piles: The writing about programming itself is "impractical" and "romantic," because that writing is for those who have an affinity with the "romance of programming." The writing about getting a job, negotiating compensation, shipping products, hiring programmers, &c. is practical, because that writing is for everyone.
- muzani 6y agoWhat is the difference between practical and romantic? Musashi wrote a book called The Book of Five Rings, which is as romantic as the name suggests, but half the book is an if-else set of instructions.
- brmgb 6y agoWhile I somewhat admire the author feelings, as a direct answer to the chosen title, I have to say I don't share them at all. I view programming with a mix of indifference and boredom and the sad few years I had to do it as a job are easily the less fulfilling of my life. If I had to sum up my feelings regarding programming, I would say it is: - a lot of uninteresting busy work; - intellectually mostly unchallenging. The few parts that are actually interesting are maths and if I wanted to maths I personally find that there are more interesting problems to solve in parts of maths not related to programming. I don't remember ever feeling any joy after completing a piece of software; - extremely isolating; - both boring and infuriating to debug when it's needed. The only positive part was shipping something useful when it was finished.
- chubot 6y agoI felt that way after a few years of programming. I was bad at debugging and several other things that would have made my life a lot easier. After a decade of programming, I got better at it, and started to like it more (even doing it in my spare time) People like things they are good at. To be provocative: if you only did it for a few years, you probably weren't that good at it. The same can be said for math, playing guitar, etc. Guitar is a good example. Anyone who has been playing for a year or 3 probably knows the drudgery of practicing some chords that don't sound like what's on the record, hurting your fingers, etc. When you get good at it, the drudgery goes away and you're left with fun. And that's not to say "good" is a fixed target... The interesting thing is that once you get to a certain point, you can see the infinite world that you haven't explored yet. If you like math then there is a ton of stuff in programming that's mathematical, but you can't get a job in those areas until you've mastered the basics.
- DC1350 6y ago> How can you not be romantic about programming? Get a job doing boring shit you’ve already worked on 3 times before. Most programming is awful and that’s why you get paid so much to do it.
- psyc 6y agoAs an indie game programmer, I cast magic spells and speak living worlds into existence. Pretty romantic. As a paid software developer taking tasks and bugs off backlogs, justifying everything I do, no autonomy, forbidden to refactor, documenting everything, filling out dumb little forms in Jira that literally nobody ever sees again, attending meetings, making my boss look good, spinning myself in performance reviews, blah, blah, no I can’t say any of that is particularly poetic.
- bor0 6y agoComputation has been and is a huge part of my life, and thanks to it I live a decent life with my family. It also helped with self-esteem and other similar things. But love? Love taught me things I couldn't imagine (in a positive way).
- dshpala 6y agoTo paraphrase a thing that I read in a book about Tao: "How can you not be romantic about making iron hooks?" And I fully agree. You can find beauty and elegance in anything, including programming (and I certainly do).
- FrozenVoid 6y agothe only things i find "romantic" is creative design in macros, improving algorithms and low-level bithacks, everything else is mostly boring and mundane code monkeying. Programming big projects where creativity and design space are stifled must feel suffocating and limited: people don't invent new stuff and do everything by the book - implementing something just for it to work, but not daring to break new territory.
- pdimitar 6y agoResponding to the title, it's easy: get jaded by constantly having to fix somebody else's broken stuff and as a bonus never get enough time to express your own creativity and implement your good ideas. Rinse and repeat for ~10 years and you'll see how can you not be romantic about programming. (I am in the profession for 19 years.) I am now looking for ways to retire early. I will hit 41 in a few short weeks and I am still the hard-working guy that has zero savings but that has been 100% my fault and I am not blaming anyone -- I have treated life as yet another lousy job that I can half-ass (reference to my younger years). I came to my senses, finally, about two years ago, after I received a series of cold showers during several interviewing campaigns and have seen how capricious the job market is and how completely RANDOM tech hiring is. Since then I am working on investing in relations more than anything else, taking some pay cuts for supposed sustained income down the line (people who would call me for temporary contracts on a regular basis, people calling me to fix their stuff just for a few days and for generous one-time fees, people needing the occasional technical writing etc.) but if that doesn't work -- and it likely will not work because I don't seem to be in the right circles -- I'll just start applying exclusively to USA companies due to the bigger compensation and will just hoard money for a few years. I'll also likely start 3-4 small IT businesses after I fix my health; my skills as a programmer and a sysadmin are quite broad and I can pull it off alone. --- Back on topic, programming is romantic when you are not doing it as a paid job, plain and simple. There are people who absolutely love their programming work plus the compensation plus their team but if they are reading this they should probably start praying to whatever gods they believe in that it will last because for at least 80% of us it didn't. I am looking forward to having more free time after I gather some savings. I still love programming but the commercial aspect is absolutely destroying it for me.
- grawprog 6y agoSeeing as i'm not as jaded yet as many of the other commenters here towards programming, maybe I can give my views. I understand what the author's getting at pretty simply, it's pretty awesome to write some words...lots and lots of words...and you create 'something'. It's sort of the same romance that say would surround something like A carpenter that builds homes from start to finish Or a mechanic that builds super cars in their garage I think it's that same thing The lone programmer hacking away building something awesome Unfortunately, like the 'romance' of most things, the reality is That carpenter's working on a crew of 100 people building yet another cooking cutter townhouse That mechanic works a day job at a shop and spends more time paying bills and dealing with customers And...that programmer They're part of a team debugging some server code somewhere that a bank or accounting firm relies on or something Sometimes though, I find it helps just to stop and think of things romantically from time to time, even if you're disillusioned. By the time I left my prior job, I was kind of fed up with it. But even then there was two ways I could look at it. I could be 'A CNC programmer in a granite shop making countertops and fireplaces for rich people' Or 'I turned mountains into high end furniture using large machines in a trade that stretches back to the farthest history of humanity.' Looking at it the second way helped on those days you just really didn't want to be there.
- niels_bom 6y agoI’ve not seen the word “craft” enough in the comments. You imply it, thanks.
- airhead969 6y agoConsider it an ephemeral craft to accomplish goals, whether business or otherwise. Code will never be perfect and most of it is a mess. Someone can explore Pony, Idris, or make an Arduino to ring a cowbell on the weekend.
- 3princip 6y agoI've found being too attached to code is a recipe for frustration in the workplace. You code something elegant, simple, dare I say beautiful and inevitably it will be butchered by new product requirements, business needs, that quick hack to satisfy a client or more generally uncaring colleagues who are looking to get their job done as quickly as possible. Perhaps romantic aspects could only be achieved when there are no third parties, just the programmer and their code. Working in or more importantly leading a team mandates a different approach by putting aside aesthetic considerations for more pragmatic ones that will satisfy all parties involved. It's hard to be romantic in corporate environments.
- psalminen 6y agoThis reminded me of something that happened last week. I had written some code I found absolutely beautiful, then had to delete an hour later since the customer's requirements had changed. Personally, I find these situations disheartening but it's never frustrated me.
- throwawayboise 6y agoWhy delete it? Tuck it away for later use. If somebody wanted it enough to ask for it in a formal way, someone else would probably find it useful.
- mojuba 6y agoEvery line of code that you write and can be proud of stays with you and adds up to your experience. You will produce more of it as you gain more experience.
- GuB-42 6y agoIf your code gets butchered it is not that great. That's something I am slowly learning, and by slowly I mean in the scale of decades. I've seen some of my old code I wrote in the workplace ten years ago, going through the hands of many developers of various skill levels and with different ideas, and then getting back to me. Needless to say, it is pretty ugly. Analyzing that, I found the real good parts mostly untouched. The parts that I though were great when I wrote them and make me feel ashamed today usually didn't hold up. The most butchered parts tend to be of the overly abstract kind. Interestingly, some of the complicated and clever stuff that most people advise against did well. If it does the job well, people will keep it and put it to good use. You can code romantically in the workplace. You just have to realize your code will be under attack and it has to be strong enough to defend itself. Weak code is not beautiful anyways, so in the end, all that adversity will help make your code better and more beautiful.
- titzer 6y agoI've been programming since my early teens > 25 years ago. The article asks "How can you not be romantic about programming"? And I have to say, that after all these years, I am romantic about programming...only sometimes, now. For one, programming a lot made me very near-sighted, and my eyes are dry to the point that I can no longer wear contacts. (I had a bad episode and nearly went blind a couple years back.) That really blows, because I used to like surfing and other outdoor activities that are seriously curtailed by thick glasses. Take care of your eyes! Second, I am mostly not romantic about programming because I feel like I am swimming against the tide most of the time. Stuff changes so fast and so much; there is so much fad and passing fashions, and what's the rage these days is tomorrow's cargo cult. What's today's cargo cult started as an offhand comment with a kernel of truth that far too many people took far too seriously. It's never the right things that change, either. We keep changing syntax and IDEs and environments and frameworks, and yet we're still fighting memory management bugs in 2021. A very stubborn cult of performance worshippers have successfully defended the bottom layers of software from being rewritten in safe languages (putting safety at priority #1 for 4+ decades). I'm willing to pay 15% performance for this layer to just be forever ridden of this, but people treat me like an alien. Third, people have complained about programmers being lazy and wasteful since the beginning of time, but we've truly jumped the shark. Build times for C++ (and Rust) are just insane. To think, dozens of cores, cranking away for minutes at a time, trillions upon trillions upon trillions of calculations just to output a little binary. Being a compiler person, and knowing some details about what is going on inside those compilers makes me want to cry. It's insanely wasteful. Fourth, the arguing. There have been tribes and flamewars and a toxic culture since forever, but really, it feels so hard to express how disappointed I am in the whole shit, without adding to the whole shit and making the whole atmosphere even worse. I vacillate between wanting to yell at clouds and being sick of hearing people yelling at clouds! I'm simultaneously sick of being shouted at and on the edge of being shouting mad! But, there are bright spots. CPUs are insanely fast, and there is memory enough for everything. Stuff crashes less. But yeah, everything is a tangle and huger heap of shit than ever.
- Person5478 6y ago> I'm willing to pay 15% performance for this layer to just be forever ridden of this, but people treat me like an alien. I'm not. In fact, what irritates me the most about computing nowadays is how much slower everything is now than it was 20 years ago. And the work at these levels is what allows everyone else to be so cavalier about performance.
- KDJohnBrown 6y agoCash rules everything around me. After a few decades of relying on coding to feed my family, I miss the way it felt magical, writing in Basic on a ti 99/4a. I thought I was going to tell computers to do wonderous things. In reality most of us are telling them to serve ads or sell crap to people. Most of the rest of us are telling them to serve data to companies doing the above. It’s just business now, nothing more.
- t-writescode 6y agoSo what are you going to do about it?
- KDJohnBrown 6y agoI dont even own a computer anymore. Once Covid is over I’m becoming a cannabis farmer.
- deleted 6y ago[deleted]
- bumbada 6y agoFor me programming is all of those but also boring and frustrating and gets on my way to get things done. Creating things nobody ever have done before is one of the deepest feelings you can feel in this life when you have done that, but also is terrifying emotion while you are doing it. Like a chemical reaction, for something to be deeply satisfying from an emotional point of view you first need to give the system enough energy for the reaction to happen. It requires intense focus, that is deciding not to do other things, which is painful. It is slow, which is frustrating. The work that could not be automated is boring. It is very expensive if you hire others to help you, and involve a tremendous risk if after all the work, it doesn't work out.
- jrowen 6y agoSomething I sometimes think about in this vein: how many lines of code, written by how many people, in how many different times and places, are traversed on your computer every second? It's kind of mind-blowing to me, and I can't think of anything else that works like that. It would be like if, when building a new house, you built it around an existing house, and continued to add layer after layer, and generations later the original house was still in constant use and supporting all the rest.
- saagarjha 6y agoThis is true of any complex object, though. Any skyscraper you walk into probably has parts and labor coming from thousands of different places.
- jrowen 6y agoThat's true, skyscrapers and cruise ships are pretty marvelous in a similar way. When I visited the Met in New York I was most fascinated by the building/complex itself. How many individual pieces, how many workers, how many design elements and functional considerations... What makes software even more romantic is the "living" aspect of it. When you write a new text or build a new skyscraper, you incorporate the learnings and knowledge gained from prior work, but with software you actually embed a functioning copy that lives on and interacts with the new work. Repeat enough times and soon the "git blame" equivalent for your processor reflects an incomprehensible network of creative work from so many different people and times and organizations that mostly had little to no connection to each other.
- tonyedgecombe 6y agoI recently read that the typical car now runs about 30 million lines of code. That is just astounding to me (and slightly concerning).
- 7usueudud 6y agoI never know how to answer coworkers when they ask what motivates me because, frankly, I think all the romanticism is just a childish fad that you have to play along with if you want people to assume the best of you. My usual answer is always something vague like "there's just something magical about them. I feel like an artificer." It wouldn't be so annoying but I constantly meet people who insist they just can't work that day because they don't have whatever synonym they've chosen for inspiration and meanwhile all I can think is "Or you could get over it and finish like a god damn professional". As a very mercenary person who's happy to hone a skill simply for the money I can't wait until there's enough people in software that we can start firing the profitable children finally. I think this is just an American thing though because on the occasions I've met with partners from other countries, especially basically anywhere in SEA, I've noticed people act a lot more like adults. Personally I blame San Fransisco.
- elliottkember 6y agoI think know what happens here. We become disconnected from the real-life output of what we do. It becomes abstract. If you're like me, you started off making stuff for yourself and it was a thrill to put it live and know that people could see it. Now I think we all build stuff for others, because that's where the real money is. In short, a hobby turns into a job and stops being fun. But I've found ways to bring programming into my hobbies and that's been life-changing!
- Havoc 6y agoIn part I'm glad I didn't go into programming for this reason. It's a pure hobby pursuit free of the pressures & stress of work. I code what I want when I want.
- atoav 6y agoThis is a good summary of my own feelings on the whole darn thing. I also design circuits and the whole thing is just fucking magic to be honest. The fact that this works at all is constantly baffeling me.
- drummer 6y agoThe true wizards of today are the AI engineers and scientists.
- ggm 6y agoCode which matters is like mathematics. It can be reasoned about, has respect for formalisms, may be subject to proof or inductive reasoning. It heads to things like type checking. I've never written any code like this. I often doubt I can. Everything else is either ephemeral, or scripting, or should only waiting to be subject to tests against formalisms. Lots of things are broken in code which should not be btw.
- fctorial 6y agoI like the new theme of programmingcirclejerk. Looks exactly like hacker news.
- celim307 6y agoThe highways of tomorrow are being built today.
- paganel 6y agoI used to be romantic about code, even more than that, and then I saw how the code other programmers like me wrote was used for all the wrong reasons and suddenly there was no ounce of romanticism left in the very idea of coding. There could be some chance of regaining the lost romanticism if we'd throw "collaborative" concoctions like GitHub out of the window, if we'd get rid of the very idea of working for any FAANG-like company ever again (and to hell with those hellish interviews associated with them, too, nobody interviewed Shelley or Goethe before they sat down to write their romantic stuff) and to top it all it would be best if from now on we'd only write code for our own pleasure, maybe add a very short selection of friends, too, no more "software is eating the world" and all that materialistic and definitely non-romantic nonsense.
- abarrak 6y agoA friend of mine asked me: "why are taking it seriously and love to code? I do it just as routine job". Then, he didn't complete his career as programmer and switched to be business analyst.
- cambalache 6y ago> There’s a scene in Moneyball in which Brad Pitt’s character, the manager of the Oakland A’s This is how you know the article was written by an European. Billy Bean is of course the GM, not the manager, a subtle and pedantic, but very important difference in baseball clubs job titles.
- Tade0 6y agoI wrote my first lines of code when I was 12, so I had a good few years of working exclusively on stuff I was interested in before I went to college and found employment in this field after graduating. My current job is nothing like those years and in comparison feels like bricklaying. It pays the bills, but there isn't a lot of room for growth, because we have a streamlined process designed for delivering the product on time and on budget. In one word - boring. On one side this is great - you should use boring technology, because it brings the most value. On the other it's as devoid of romanticism as it can be. The silver lining here is that this job leaves me with enough mental energy to pursue hobby projects. Provided that at the moment I'm not in a situation in which I'm forced to follow rules/directions I consider harmful/stupid.
- deleted 6y ago[deleted]
- A12-B 6y agoThere's a difference between being romantic about solving puzzles and creating new and useful tools, and being romantic about the drudgery and bugs. I wouldn't call the people who pretend there aren't boring parts of programming 'romantics', it's more of a delusion. But those people do exist, and I don't trust them.
- phabora 6y agoCRUD.
- forgotmypw17 6y agoThis is basically why I quit doing it for money. It felt like taking this amazing, yes, romantic, thing, and perverting it until it is barely recognizable. Writing code that I knew from the onset would never last more than a year or two, would not see the light of day beyond inside its small nook. And in the end, we accomplished little more than moving money around and persuading other humans into doing things which were bad for them. It took me several years to get over the numbness I developed after years of that crap, but now I'm in love again.
- _virtu 6y agoI've been struggling a lot recently due to burnout. And I'm not sure if it's burnout or if it's what you describe. I'm extremely passionate about my craft, but I feel like that's been to my detriment due to the sentiments of your post. Either I have a misalignment in what I've been doing and I need to change to a position I truly love or my expectations are so ridiculously unrealistic that I probably won't be able to function as a professional in this space.
- forgotmypw17 6y agoIf I were you, I would start thinking about two topics: 1) What can I give up to reduce my annual time and financial minimal upkeep? 2) What do I really want to work on? If my upkeep was taken care of and I didn't have to worry about food and shelter, what would I be doing to the point of exhaustion, passing out, sleeping, then waking up and jumping right back into it?
- _virtu 6y agoThanks for the input kind stranger.
- forgotmypw17 6y agoYou,re welcome.
- o_m 6y agoI used to love programming, but after doing it for some years professionally I feel like a lot of people (clients, managers, co-workers) look down on it. Like its just a neccessary evil they wish they didn't have to deal with. I feel like it is the lowest status profession you can have in the tech world.
- dragonwriter 6y ago> I feel like it is the lowest status profession you can have in the tech world. QA, Ops, Support, and (in a reversal from a few decades ago) Analysis would like to have words with you.
- ntsplnkv2 6y agoIn general anything related to IT isn't "well-regarded." Even compared to regular engineering professions/doctors/lawyers all hold more prestige.
- MeinBlutIstBlau 6y agoBy treating it as a job and not a hobby. You don't need to make work your life. While older programmers I've met certainly are more likely to do it in their free time, I think we're beginning the transition of a newer generation brought up with the fact that it's a career. There is so much to learn that it barely benefits you to do extra in you free time unless you are job hunting.
- ntsplnkv2 6y agoExactly this. Many people are introduced to it in college at this point. Also too the world they grow up in is far different. Computing for us was a lot more intensive to them, who now just pull one right out of their pocket.
- 50 6y agoProgramming may be romantic. After all, much like in the spiritual life, programmers also work towards an ideal. And isn't this working towards an ideal just a love affair? One might claim that programming is logic-intensive compared to the spiritual life and other disciplines like poetry. Ellen Ullman in Close to the Machine: Technophilia and its Discontents writes, "...the computer is... a projection of a very slim part of ourselves: that portion devoted to logic, order, rule, and clarity." Another form of the author's question might then be this: How can you not be romantic about logic, order, rule, and clarity?
- dreary_dugong 6y ago``I think that it's extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think we're responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don't become missionaries. Don't feel as if you're Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don't feel as if the key to successful computing is only in your hands. What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.'' Alan J. Perlis (April 1, 1922-February 7, 1990)
- rpdillon 6y agoThanks for posting this! I first ran across this quote in the intro to SICP, and didn't think much of it when I first read it (~2004). In the intervening years, I'd forgotten about it. I ran across it again a couple of months ago, and was surprised at how strongly it resonated. I've picked up Racket programming on the weekends to bring myself back to some of the fun that got me started in the first place. Incidentally, Epigrams in Programming[0] is also an ongoing source of inspiration for me. I understand them in new ways as I get older. [0]: http://www.cs.yale.edu/homes/perlis-alan/quotes.html http://www.cs.yale.edu/homes/perlis-alan/quotes.html
- bmitc 6y agoI find it pretty easy to be romantic about nearly anything. There’s very little romance in the day to day of programming in industry though.
- jv22222 6y agoAnecdotal, but I’ve always known there to be two types of coders. Those who do it for the money, and those who do it to solve problems and make things. My observation is the ones who do it for money get burnt out and want to get out, the other kind never stop wanting to learn and just keep having fun.
- david927 6y agoWe can build beautiful things but we can’t build them in a beautiful way. We marvel at our pyramids but dream of the arch, of Chartres. Until we eliminate the goose wire and tinfoil, it will be hard to feel satisfied.
- mjgs 6y agoWhat a marvellous short form essay.
- Grustaf 6y agoI can think of very few things in this world less romantic than programming. Possibly accounting, not even sure about that one.
- dijereedan 6y agoI am one of those people who wants their code to be poetry. Ideas and logic expressed in the simplest most elegant terms. But when I left academia for industry and started working on a bigger project requiring coordination between many dozens of people, I realized that this approach is not conducive to making money. My idealism collided with the complexity of the real world. Software is a mess, but a beautiful mess. I now realize this is not necessarily a reflection of the skill of those who write it, rather the complexity inherent in the users domain.
- enneff 6y agoPoetry is an artistic expression and so it can be, as you say, ideas expressed in simple and elegant terms. But it can also be opaque, complicated, confusing, awkward, and abrasive, and still be great poetry. When working with others it is all the more important that the code be elegant and simple. That’s the only way to fight the always encroaching complexity.
- logbiscuitswave 6y ago> Some lines of code are a riddle to anyone but their author Sometimes not even the author knows! (Of course I’ve never looked at something I wrote in the past and had no clue what I was thinking or trying to accomplish. Nope. Never happened. /s)
- jariel 6y agoTrue, but I'm extremely wary of it and think it leads to magical thinking and bad outcomes. I prefer to take the opposite view: programming is work - it's mostly just 'building something' much like a Carpenter who has to know a lot of things, makes plans based off of experience, but at the same time will innevitably have to pivot in the face of those plans. Any job done by a carpenter depends almost entirely on the quality, experience and workmanship of the carpenters and not much else. The newest, fanciest tools will not make good work. Moreover, it's very easy to cut corners if you want as the methods can be opaque to users. CRUD apps built by experience teams are practically like construction sites. I don't want romanticized attachment to work, rather, a kind of civil obligation to doing a good job. All of that said, there's a lot in Software that is more academic, and does require intellectual chops and left-field thinking, experimentation etc. and you have to have that as well.
- scrozier 6y agoI'm 62. I fell in love with programming as an undergraduate in 1977. I had traveled across the country to attend a school (University of North Texas) renowned for their music program. Not seeing my future in music, I was fortunate that the school also had a fine computer science program. I often reflect that I know how to do two things--make music and program computers--that many view as very close to magic. And I'm grateful.
- hinkley 6y agoEasy. Having my heart broken so many times.
- the_only_law 6y agoI wish I could be romantic about something again. Outside the typical industry stuff that killed it for me is the fact that nothing feels like magic anymore. When I was a kid and really started programming. There was all sorts of software that fascinated me. It seemed like magic and the code behind it looked arcane. I would often to try to learn about things far out of reach for a kid who was really user beginning and I wasn’t really intelligent enough to stick with it and figure it out and it felt like magic still. After I first burned out, I came back to some of this stuff. Sometimes by our accident and sometimes to try and recapture that magic. Now I was much more experienced and a little bit smarter however, and the magic quickly fell apart. Everything made sense when you think about it and a lot of things seemed closer to hacks than magic (not the cool kind either). Since then I’ve lost of lot of interest in programming. There are still things outside of programming that I’ve tried to replace it with that give the same feeling as programming once did, but I find I don’t have the intelligence or straight up money to get into them the same way.
- deleted 6y ago[deleted]
- ok_coo 6y agoIf programming is romantic then why does it feel like I'm dating a Klingon?
- travisgriggs 6y agoI do enjoy programming. It's like Legos for adults (though I still own a large Lego collection as an adult too). But I'm also resonating with some of the other negative comments in here as well. I love programing when I'm able to love programming. Years ago, I watched this Dan Goldman RSA talk about motivation (https://www.youtube.com/watch?v=IhJ4CDCfASI https://www.youtube.com/watch?v=IhJ4CDCfASI) and I began actively looking for a job the next day. For me, I've found his three points on motivation to be key: Autonomy, Mastery, and Purpose. When I'm not able to enjoy programming, it's because my employer has violated one or more of these and treating me like a horse.
- vonwoodson 6y agoAmen
- js8 6y agoProgramming is teaching a computer to do something, and teaching something another being (even a stupid one like a computer) and seeing them grow can definitely be romantic.
- rodrigosetti 6y agoThis is someone that doesn't love our craft. It's ok. Romance can be taken away from anything, as meaning isn't objective, but a human idealization. In the end, everything we do are just atoms moving around, and after a few thousands years nothing will matter.
- deleted 6y ago[deleted]
- Vhano 6y agoI had this feeling recently! It was close to the deadline and I was burning the midnight oil, just feeling like Neo, jumping through the ifs, whizzing around them loops, dodging them future bugs (oops, almost wrote a do-while), and transporting through the methods. But yea it was awesome. Wrote this cool logging tool for the database guys. It prints the events with timestamp AND in colour(!) to indicate priority. Planning to add features like font weight to indicate audience (QA get light weight, Dev gets italics etc)
- danwills 6y agoThis (awesome and inspiring) article doesn't really go into the philosophy much, but one thing I love in this direction is the way that programming lets us work directly with (abstract) computation - literally any rule-following system that can be described, can be explored. Universal computation is still the max known complexity of any rule-following process, and it's also a low-bar, very easily attained: x86, RISC, GoL, rule 40, or smallest 2,3-Turing-machine - all are exactly equal in their total-computational-capability (merely with different translation needs on their input and output). Ideas (fantasies?) of hyper-computation are fascinating, but what can that really mean? To follow instructions better than exactly? Surely it'd just be different types of faster!?
- Vhano 6y agoI find the theory of computation spiritual/awe-inspiring but I'm doubtful of how much of our software workers in our time are in touch with that (and not entirely at a high abstraction distance)
- p0nce 6y agoI love programming but the industry is generally in denial of debt. Still it's the most reliable passion I've had.
- phtrivier 6y agoIt would still be "romanticized", but less glamourous, to think about all the terrible aspects that went into those millions of line of code (and don't get us starting on the hardware.) It is part of the global human collaboration, where we're all gears and screws, but some of us are more geared toward screwing others.
- mikewarot 6y agoThat's a sweet childlike view of the world, like the picture postcard of a White Christmas (tm). The real world is like Texas... bad design can produce a black swan failure decades in the making, at any time. We're like the management at NASA, with their improvised spreadsheet models of O-ring erosion and a theoretic model of how x% of erosion equates to y% of danger, when in reality the original architects wrote down that ANY erosion meant the system wasn't safe, and needed redesign. As far as I know, none of the code holding everything together is actually suitable for purpose. This is terrifying to me. --- MS-DOS was fit for purpose, when it ran on floppy disks you could write protect and make copies of. You could run any program you wanted, downloaded from any BBS or copied from any shareware disk, and know full well the biggest loss you could incur would be having to make a new copy of your data, or OS on a fresh floppy disk. Programming was fun back then, because you didn't have to worry. That ended when we got hard drives, and when people figured out how to infect firmware, there was no going back. --- Unless... you start with new hardware and firmware, and don't ever trust applications to talk to the hardware directly, ever. You then minimize the kernel of code as far as practical, and set it up with policies that protect itself, and the hardware by default. Only then is it possible to get the fun back again. You give the user the tools to decide exactly what to trust a program with, and enforce their decisions. They can be trusted to act wisely, if the tools are sufficiently transparent and easy to use.