7 ms·
The problem is CS is just a miserable field to be in unless you really, really enjoy the grind of it. To me it comes down to some CS-specific version of Mike T
by tosser0001 6y ago
The problem is CS is just a miserable field to be in unless you really, really enjoy the grind of it.
To me it comes down to some CS-specific version of Mike Tyson's (perhaps apocryphal) quote "everyone has a plan until they get punched in the mouth" - something along the lines of "Everyone has fun programming until they have to start debugging".
My city has several years of programming courses at the high school. A lot of kids sign up for the first year but the numbers rapidly fall off. They start the kids off with the basics and doing simple programming exercises. Generally they have fun while they are being successful getting boxes and lines to appear on the screen, but as soon as things get the slightest bit complicated and the students get into the weeds of debugging the enthusiasm dissipates pretty quickly.
It's not that most of these kids don't have the intelligence to tackle it if they wanted to; they personally just don't find it fun at all.
- arethuza 6y agoAn an aside: I would say debugging is one of my favourite bits of programming!
- orobinson 6y agoNothing quite matches that triumphant moment when you finally discover the root cause of an issue that's been bothering you for days.
- ghaff 6y agoAt which point you bang your head into the wall because the fix is so bloody obvious. :-)
- arethuza 6y agoI am inclined to shout "You f*ing idiot!" at myself if it was my own fault. Yet another advantage to home working!
- Maximus9000 6y agoAnd that can be demoralizing in itself. Early in my career, after make a stupid 'single character mistake' that broke my entire program, I started to think "maybe I'm not cut out for this".
- ghaff 6y agoThe first and only programming course I took in college (a very long time ago), I still remember that after making a few typos or whatever on some program, you'd run out of your computer time and would have to beg the grad students who ran the computer center for some more CPU time.
- rurp 6y agoWhen I was first learning how to program it felt like arguing with the most pedantic person in the world. I would write a script that felt like I had crafted a concise and elegant argument, only to have the computer respond, "Invalid. You missed a comma somewhere on line 564".
- perl4ever 6y agoFor a long time, I've had the superstition that if I don't have to fix a couple of syntax errors (or other triviality) initially, it's a bad omen and there's probably some much more significant logic error lurking. Any time something compiles/runs for the first time without adjustment, I get nervous.
- eequah9L 6y agoWell, sometimes, the _root cause_ is so bloody obvious. But now you have to figure out how to fix it without breaking everything around and spending a year refactoring.
- marvin 6y agoWell, it isn't always. As in the latest big mystery I was a part of solving -- the build failed because there were files left over after the "clean" step of msbuild. This obviously shouldn't happen. The culprit was an extra build action (among ~20) that had been cut-and-pasted from Stack Overflow 1.5 years ago and worked splendidly, until an unrelated update (dev machine prerequisite, installed organization-wide) caused it to behave differently on local builds but not on the build servers. The check-in comment of the commit in question was "merge hmm", and the start time of the failure is uncertain because the project was rarely built outside of the centralized build infrastructure (where it worked fine). 10 cumulative hours of debugging across four developers was spent to figure this out. In my experience, these kinds of "WTF" errors happen more often than the ones that make you go "wow, I am stupid". At least when you reach a skill level where the obvious problems don't show up so often. But the point stands that this requires an uncommon kind of patience. Hooray, we solved it. Now we are finally able to modify the back-end behavior of this specific type of mutual fund order, which is what we wanted in the first place. Think the finance part of the task is more interesting than the banging your head against the wall debugging the tech stack part? Tough luck! Should have been born at the time when this happened by manually operating a terminal in the back office.
- agency 6y agoAgreed. It's a little mystery that I get to dig into and investigate. Certainly sometimes the issue is just frustrating and tedious, but often it's illuminating. And it's gratifying to get to the bottom of it. To go from the initial phase of "what the hell is going on here" and arrive at some understanding.
- mcv 6y agoYou get to be the Sherlock Holmes of a digital mystery.
- HanP77 6y agoThis I've been working has a web developer for two years after completing a bootcamp. Peoples often ask me questions because they think about doing the same. I always say to them that this is not for everbody, you are banging your head against the wall most of the time. Off course nothing beat that sensation when you finally found the problem or even when you get closer. But that has to be your thing.
- ipnon 6y agoSkateboarding is similar. The people who get that rush after landing a trick for the first time will invariably spend the next few years doing nothing but skating. The people who don't will reasonably wonder why anyone would waste their time riding around on a stupid wooden toy. It's a simple formula: if the gain is more than the pain, your life is changed.
- shpongled 6y ago> I always say to them that this is not for everbody, you are banging your head against the wall most of the time This is what I tell people who want to get into bench science. It's funny, because I find programming to be an escape from the 'head-banging' of science. At least when I get stuck debugging a programming issue, I know that there is a fix, and I'll eventually find it. Compare that to science, where you might bang your head against the wall for weeks, months, or years, only to later find out that the problem simply isn't tractable, or that the problem had nothing to do with you at all.
- nyanpasu64 6y agoNot all CS algorithmic or systems design problems, you know there _is_ a fix.
- ntsplnkv2 6y agoConsider this in addition. How many are beating their heads off a wall, and then solve it. Perhaps they are happy they figured it out. But then they remember this is for a piece of garbage ad-tech app, or part of a google project that'll go in the garbage in 2 years, or something to steal even more private information from end users, or it's another CRUD web app... All the while they're being sold on how they're "changing the world..." or "innovating."
- corpMaverick 6y agoYou bring a great point that I think needs to be discussed further. Every year I spend more time banging my head and I think it is having serious effect on my mental health. I enjoy programming and I don't really spend a lot of time debugging. My code usually runs fine, or I am able to easily find out what is wrong. It is the whole combined complexity of all the tools that we use. Git, Java, maven, gradle, jenkins, Oauth2, aws(ec2, s3, opsworks, cloudwatch, iam, secrets manager, etc), prometheus, elk, splunk, etc.,etc. plus the combination of all the repositories, branches, modules, versions, libraries that we use.
- ntsplnkv2 6y agoThere is an ever-increasing library of skills and tools that all have major flaws that have to be used in IT/Software Development. Nothing ever seems to work right - and because all software is written differently by different people in different companies and languages, old and new, you can't solve everything. Things just don't work, and often. Problems are ignored. Software is thrown out to users to be "updated later."
- enumjorge 6y agoTo your point, there was an Ask HN thread yesterday where someone was asking for a simpler alternative to git. They kept messing up their repository when using git and they were ready to give up. The responses were basically a) “git is the de facto standard. You can try mercurial but you’ll be missing out on a lot”, which is sadly true or b) “it’s not that bad, just really study the underlying data structures and git will get easier”. I think the attitude of the second point is one of the reasons why writing software for a living can be so frustrating. Even the tool that saves and tracks changes in your work requires a non trivial amount of cognitive load to use correctly. It’s death by a thousand cuts. Sure, tool X isn’t rocket science but it’s also one of 20 tools I use and if it’s giving me trouble it can make the process of shipping software so frustrating.
- justnotworthit 6y agoI never resist the opportunity to quote: Computer people generally design terrible computer interfaces because they are not only willing to cope with something bad, they're pleased to. - Alan Kay, Personal Computing Historic Beginnings
- ipnon 6y agoYou have to be a little crazy to want to spend your life trying to get these damned things to work.
- commandlinefan 6y ago... and never be appreciated for it. ("why did it take so long?")
- ahartmetz 6y agoMoney is a quite sincere form of appreciation :)
- blaser-waffle 6y agoDon Draper: It's your job. I give you money, you give me ideas. Peggy Olson: And you never say thank you. Don Draper: That's what the money is for!
- koolba 6y agoYou don’t have to be crazy to be great at programming, but it helps. My own anecdata suggests that best programmers are the craziest ones. But that’s also true for just about every other field that requires extensive self discipline to master.
- chosenbreed37 6y ago> My own anecdata suggests that best programmers are the craziest ones. But that’s also true for just about every other field that requires extensive self discipline to master. That's interesting. I can see this being true for Math, Astrophysics, Genetics, etc. Somehow it doesn't ring true for Law, Accounting, or Actuarial Science
- shagie 6y agoI've often linked this in /r/cscareerquestions as advice to students: http://www.cs.uni.edu/%7Ewallingf/blog/archives/monthly/2018-10.html#e2018-10-21T09_53_29.htm http://www.cs.uni.edu/%7Ewallingf/blog/archives/monthly/2018... {quote} But I had enjoyed working on the hard projects I'd encountered in my programing class back in high school. They were challenges I wanted to overcome. I changed my major and dove into college CS courses, which were full of hard problems -- but hard problems that I wanted to solve. I didn't mind being frustrated for an entire semester one year, working in assembly language and JCL, because I wanted to solve the puzzles. Maybe this is what people mean when they tell us to "find our passion", but that phrase seems pretty abstract to me. Maybe instead we should encourage people to find the hard problems they like to work on. Which problems do you want to keep working on, even when they turn out to be harder than you expected? Which kinds of frustration do you enjoy, or at least are willing to endure while you figure things out? Answers to these very practical questions might help you find a place where you can build an interesting and rewarding life. I realize that "Find your passion" makes for a more compelling motivational poster than "What hard problems do you enjoy working on?" (and even that's a lot better than "What kind of pain are you willing to endure?"), but it might give some people a more realistic way to approach finding their life's work. {/quote}
- pkaye 6y agoIts just that right now programming jobs pay well. Not all passions line up with job that earns enough.
- shagie 6y agoI am fortunate that my enjoyment of the hobby of photography wasn't discovered until I was employed with a good paycheck coming in. If I had found I enjoyed photography in high school or college I may have been tempted to pursue it professionally. The thing is... I hate the business of photography. Yes, programming jobs tend to pay well. So do medicine, law, and various other white collar jobs... for that matter, so do many trades. Its not a question of "does it pay well" but rather "are you willing to do the hard work that it entails and not burn out after a year." That question isn't one that many college students or bootcamp grads have considered. If you only enjoy creating new apps and not debugging them when something breaks - being a professional programmer may not be the proper role to be in. Not all things that are written are new apps (brownfield is much more common than greenfield) and debugging is an essential part of writing software. This is what is meant by willing to endure the hard work. One may have a passion for computers ("I love playing games and building new computers from parts") but not enjoy programming.
- sokoloff 6y agoThat's the odd thing about it. I literally got paid (quite well) to do things that I happily do for free in my spare time anyway. You have to pay me to work on your problems, but there's a big part of me that would happily do it for free.
- JSavageOne 6y agoThe sad part is that you're not allowed to say this or nobody will hire you since you will be deemed "not passionate enough". This is a unique trait to CS careers that does not exist in other jobs where they rightfully treat their jobs like a job, not some spiritual life calling.
- t-writescode 6y agoI say it all the time - I have a bit of a history of speaking my mind, though. "If you don't enjoy computer science, please oh please don't do it. You're going to hate every waking day if this isn't fun. It's some of the worst stuff you could possibly do if you don't love it."