3 ms·
When I was 21, I thought the fun part was learning new technologies and the hard, frustrating, somewhat boring part was writing the code. (I also only knew C++
by michaelochurch 15y ago
When I was 21, I thought the fun part was learning new technologies and the hard, frustrating, somewhat boring part was writing the code. (I also only knew C++ and Java, so I thought the accidental complexity of these languages was an intrinsic fixture of programming.) Learning Python, then Ocaml, then Lisp, was a lot of fun. (The REPL makes a huge difference in the experience of programming. It makes the code real rather than some hazy gobbledegook.) It was even better to start using these languages for real-world problems.
I'm 28 now and I find the writing of code to be the fun part, because I'm now good at it and know better technologies than C++ and Java. I get into "the zone" and before I know it, 4 hours have passed. Unfortunately, that's not the reality of industrial software engineering where, if you're lucky, 25% of your time might be spent writing code. Learning new platforms (often with so many of them that I can only learn enough to glue them together) is often boring. It's fun to learn new technologies when there's something genuinely new in them, but I'm sick of having to learn new and often less useful ways of doing old things.
- DanielBMarkham 15y agoI love programming and find it very relaxing. I would probably also like re-arranging chairs at a charity function. Or solving mathematical puzzles in books. I also love instrument flying, which is like real-time fluid dynamics where you die if you screw it up. But I've come to understand that these are just properties of the types of people who grok computers -- detail-oriented, able to spend many hours in the zone, and in love with complexity. At some point, the "benefits" from this personality type become drawbacks. There are a lot of guys spending thousands of hours on code in their spare time that might help 3 people -- who are also programmers. I'm not saying this is a bad choice. It just seems to me like we programmers as a whole like trivial things and can spend most of our time on them as long as they tickle our analytic bone. Continuing my flying example, there have been cases of people flying airplanes into the sides of mountains in perfectly good weather while they were fiddling around with the flight computer. Many of us are doing the same thing -- only in very slow motion. By the way, the fun part is learning the technology. The hard part is working with people to make something they want -- which is why it's about a million times more important.
- wladimir 15y agoBy the way, the fun part is learning the technology. The hard part is working with people -- which is why it's about a million times more important. That's very interesting, and indeed seems to mark a certain personality type. Most people would see that exactly the other way around, that working with people is fun and easy, but the technical stuff is hard and extremely frustrating. It depends completely on your skill and what you're used to. Almost all people tend to think their own area of expertise is easier compared to others and don't understand why other people don't get it like they do (which has a simple answer: years of experience). There are a lot of guys spending thousands of hours on code in their spare time that might help 3 people -- who are also programmers Nah, helping 3 people in your spare time is more than helping no one. You're right, if your goal is to help as many people as possible, programming isn't the right time sink. Better to sign up for some volunteer job. On the other hand, you could also be reading a book, playing a game or watching TV and helping exactly no one :) Edit: and don't forget many non-programmers also spend their spare time on very trivial stuff. The problem is not exactly limited to technical people...
- michaelochurch 15y agoThat's very interesting, and indeed seems to mark a certain personality type. Most people would see that exactly the other way around, that working with people is fun and easy, but the technical stuff is hard and extremely frustrating. Learning technology is fun when it adds something new. For example, if you know functional programming, then Gang-of-Four "design patterns" are completely useless cruft and not especially interesting to learn. It's painful to learn that sort of stuff when it's less powerful than what you already have and would be able to use in a better environment. "Working with people" can be fun, to a point. It's enjoyable when there's no power relationship, or a symmetric one. What's difficult is the context-switch from programming to interpersonal communication. It takes some time.
- hackinthebochs 15y agoThe point is that different personality types enjoy different aspects of programming. For some people the technology itself is the fun part. For some its what you can accomplish with it. There is no right or wrong here.