TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Where's the fun in programming?

53 pointsby alexwyseralmost 15 years ago
I work as a freelance web designer and developer.<p>When I first started out I only offered web design services, but soon found out that it is almost impossible to get clients who need design only. Most clients just want a complete functional website not just a design.<p>So I learned HTML, CSS and eventually Javascript, and PHP.<p>The problem is that I dislike coding. I find it to be very boring.<p>I read on HN and on other forums and blogs about how passionate programmers are about coding and how they love nothing more than to code away into the wee hours of the night, but I never understood why.<p>I get the part where its a thrill to solve problems. I love solving problems too, but conceptually not through coding. For example, I like the concept of ranking a page higher based on how other sites link to it (ie Google's Pagerank), and would enjoy conceptualizing further improvements, but I would find it extremely boring to translate that solution into code.<p>For a web application, the code might make the entire thing operate, but it never affects the user the way the design or interface does.<p>Can anyone passionate about coding tell me where the fun is in coding?

41 comments

scott_salmost 15 years ago
Many people enjoy cooking. I suspect the kind of coding you're doing is the cooking equivalent of warming up a can of Spaghetti-O's.<p>The enjoyment from programming depends on the problem you're solving. If all you're doing is making sure the round peg is connected to the round hole, it's not going to be much fun.
leftnodealmost 15 years ago
A lot of other posters are saying that the web dev you're doing is boring (and as someone who's been doing it for 10 years, I can concur). Setting up the 1000th Wordpress blog or making a basic 10 page website gets boring after a while.<p>So, pick harder problems to work on. As the web expands, they're definitely out there. If you're setting up basic Wordpress blogs, you'll rarely encounter them, but if you work on something where you'll need to dig into actual computer science to solve, you'll find it much more enjoyable (at least I do).<p>Here's an example: a client I worked with sells sheet music to schools and churches. There's <i>a lot</i> of sheet music out there. Alone, they have 350,000+ products. They had an osCommerce installation (which is some of the worst software in the world, by the way) and the search engine in OSC took about 15 seconds per search to find something. Not to mention it wasn't suited for their products. So, I wrote something much better. I researched search algorithms, tokenization, string matching, indexing, word proximity algorithms, and a slew of other problems. It was incredibly interesting, applied many of the concepts I learned in college, and in the end, produced a search engine that was really powerful and fast. It search all products in under half a second.<p>In hindsight, I could've used something like Apache Solr or Lucene, but I just enjoyed finding the solution to a complex problem and building it myself (well, along with the other developer on the team, of course). So, try to find work like that to do.<p>Or, pick a totally different domain and write software in another language for it. I really like search and artificial intelligence, so one of my favorite algorithms is the A* (<a href="http://en.wikipedia.org/wiki/A*_algorithm" rel="nofollow">http://en.wikipedia.org/wiki/A*_algorithm</a>). It's simple enough that you don't need to be a Ph.D in computer science to under, but uses enough concepts (min-heap, breadth first search, hash tables, nodes) that you'll get a good understanding. So try to build an implementation over a weekend in a language you don't know. You'll learn a lot, and chances are, you'll be burning both ends of the candle to get it to work.<p>Enjoy!<p>PS. If that doesn't get you going, perhaps you just don't enjoy programming, and thats fine too.
评论 #1449110 未加载
10renalmost 15 years ago
See p. 7 of Brooks' <i>The Mythical Man-Month</i>, for "The Joys of the Craft" <a href="http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959#reader_0201835959" rel="nofollow">http://www.amazon.com/Mythical-Man-Month-Software-Engineerin...</a><p>He lists 5: creation; usefulness; intricacy; constant novelty; tractability.<p>Some of these are in common with graphic design; but the "constant novelty" perhaps addresses your "boredom". Turing said that programming need never become boring, because any repetitive coding (or concept) can be captured in a function or module. Once you're worked out the solution to a problem, you write a reusable module to deal with that problem, and embodies your understanding of it, and you don't have to do it again. So it's always new problems.<p>Now, in practice, it isn't always that easy. Code that can be reused generally is <i>much</i> harder to write than code for one specific case (the literal meaning of <i>ad hoc</i>: "for this"). The hardest part is specifying what it do, not coding how. This approaches AI: to go from a problem that initially you cannot even understand, to one that you can automate 100%, is transcendent. Almost Frankensteinian... (aka The Modern Prometheus).<p>For me personally: I get a simple pleasure from making something happen on the screen (like any act of creation); but I actually don't like programming much for its own sake. I enjoy solving problems, and <i>making them real</i>. It's easy to dream something; but to do it is a real accomplishment. And anything on the road of that journey becomes equally important.<p>I don't know what stage you're at, but it's possible that you're not yet up to wrapping up the common parts of your coding, so you don't have to do them again. If you keep on typing the same predictable, mechanical things, that would be boring. Computers are ideal for this kind of mechanical work.
dieterramsalmost 15 years ago
It wouldn't surprise me if the sort of code you're writing is boring. A lot of website dev is.<p>Programming doesn't become fun (or at least obsessively involving) until you start working on something that's challenging to architect well, optimize, or code elegantly. If the functionality is inherently interesting, that helps, too.<p>Chances are that your programming education (which I'm assuming was self-taught) lacked a teacher that introduced you to interesting challenges of architecture, optimization, and elegance. In other words, showed you how programming can be a highly intellectual activity. I recommend working through Structure and Interpretation of Computer Programs while watching accompanying lectures and doing exercises. It's as good an intellectual introduction to programming as you can get.
irahulalmost 15 years ago
&#62; So I learned HTML, CSS<p>IMO if you don't do HTML/CSS, you aren't a web designer.<p>&#62; For example, I live the concept of ranking a page higher based on how other sites link to it (ie Google's Pagerank), and would enjoy conceptualizing further improvements,<p>You don't know the details to understand it isn't as easy as you think. If you think you can conceptually do further improvements, I would really like you to try that. You will get a better picture.<p>To give you an analogy, I can say that many users are on slow networks and are irritated when their download freezes mid way and they have to do it again. So, it would make sense to have a download implementation in which the user can pause/resume download at will. I can pause a download today, come back tomorrow, resume it and it just works. What more, since I already have some part of the file, I can switch off my system, switch it on, resume the download and still be able to get only remaining chunks.<p>I can say I conceptually solved a problem but practically, all I did was whine, some wishful thinking and showed my ignorance.<p>&#62; For a web application, the code might make the entire thing operate, but it never affects the user the way the design or interface does.<p>You are totally misguided here. I would have a lot to say here but I am afraid you won't be able to relate with it. I am making this assumption because had you been familiar with what it takes to run any significant web app, you won't have made this statement.<p>I would just like to point out that Google services has minimal interfaces and the users are happy, surely it isn't because of the interface.
评论 #1446671 未加载
gte910halmost 15 years ago
&#62;Can anyone passionate about coding tell me where the fun is in coding?<p>You're doing a very unfun form of coding. IMO.<p>HTML/CSS/Javascript and many uses of php are about the equivalent of finishing a kitchen off in a home. Other forms of coding are like building the Eiffel Tower.<p>You may wish to try outsourcing the coding portions and taking on more volume.
评论 #1446561 未加载
评论 #1446597 未加载
nopassrecoveralmost 15 years ago
"For a web application, the code might make the entire thing operate, but it never affects the user the way the design or interface does."<p>The way an iPhone slides, the way Google suggests what you're about to type, the way wikipedia can undo vandalism, the way Firefox merges your history and favourites and countless other things never affect the user?<p>It's like saying, "the PSD image never affects the user the way the design or interface does".
amanuelalmost 15 years ago
I've been a programmer for almost 20 years. When I code into the wee hours of the night I usually do so without realizing that so much time has passed. I get lost in the act of writing the code.<p>But to get lost in the code you first have to find it easy to do so. I'd wager that someday after you have been doing it long enough you will find the comfort zone and you will start taking joy in coding.<p>Dislike, frustration and boredom are the taxes you must pay to learn anything new that is worth learning.<p>I recently chose to take cello lessons and I can tell you I dislike it at this point. Someday I will find the joy I see in others playing the cello expertly...so I practice each day looking forward to that day...and each day it gets easier.<p>Code or read someone's code on Github everyday. It will get easier and more fun.
tptacekalmost 15 years ago
Any competent designer could come up with the interface for Dropbox. The code affects the user far more than the design or the interface ever will. Code decides what's possible. Design decides how what's possible will feel. Both are important. Some of us want to change what's possible for users. Others enjoy being knocked on our ass by how hard the problems are when you try to make the impossible possible.
cromulentalmost 15 years ago
The fun is in the parts when you get to be creative.<p>There's plenty of boilerplate, repetitive, coding work out there. Sometimes, though, you get to wrap yourself around a juicy requirement and solve it, or add extra functionality that no-one asked for but someone will notice one day.<p>Same with writing - doing the same old client proposal for the 50th time is no fun, but writing a fun new blog post about an awesome discovery can be great. Same with lots of work, I guess.<p>There are two times when I really love coding - when a user expresses pleasure at using the software, and when a fellow coder expresses pleasure at fixing my stuff. If you build it right, it works on so many levels.<p>I wish I got to code more, and I dismay constantly at the idea that coding is something to be passed out to the lowest bidder.<p>So much time spent in meetings, an hour with 10 people discussing how a feature should work, when I know I could have just coded it up in that hour and they would have just said "Yeah, like that".<p>Coding is engineering, but in an accelerated form. Improve the performance of an engine by 10%, something the user could notice instantly? Hard work, big dollars, lots of resources, hard to deploy to many users. Improve the performance of an application by 10%? You might do it by yourself in 30 minutes. Lots of fun.
Khaoalmost 15 years ago
I am a programmer and I am very passionate about coding. I think it all comes from the fact that I loved mathematics and physics in school. I love solving problems, finding ways to reach your goal using your logic. On the other hand, I dislike designing because I am not good at creating something without a specific goal. I can't just think up ideas for design. However, when I am faced with a problem where I have a starting point and I have a target to reach (implement feature X into Y), I am thrilled by finding the logic behind making everything work like desired.<p>As for you, I don't think there's anything you can do to really love coding. You love designing because something in it thrills you I am sure. But if you cannot find something to thrill you in coding, there's not much to do about it. How about you use free frameworks to create websites instead? It would save you a lot of time on the coding part and you would have more time to spend on things you like. Try to find one that minimizes the parts you dislike about website creation and that gives you the most freedom on thing you like.
评论 #1446617 未加载
kirvyteoalmost 15 years ago
It is kinda like music. Practice can be boring to most. But learning a new piece, and performing it, or composing can be fun. So is music boring? You are asking people to explain why they love music. No matter how much anyone love music, scales can be boring or playing the same piece the 1000th time can be boring. Coding is just an activity, like playing music, your purpose in coding it ultimately determines the fun.
philwelchalmost 15 years ago
"For example, I like the concept of ranking a page higher based on how other sites link to it (ie Google's Pagerank), and would enjoy conceptualizing further improvements, but I would find it extremely boring to translate that solution into code."<p>As far as I've gathered, there are two steps to learning a foreign language. One step is when you think in your own language and translate everything over. The next step is when you think in the language. Enjoyable coding comes only when you think in terms of the programming language. But that only happens once you run into problem domains where you have substantial thoughts, and once you use languages that allow for those kinds of thoughts. Or, once you're used to one type of language and one way of thinking about things, learning to speak another is enjoyable as well. (Imperative vs. functional programming, etc.)
Yaggoalmost 15 years ago
&#62; Most clients just want a complete functional website not just a design. So I learned HTML, CSS and eventually Javascript, and PHP.<p>I think you are answering yourself. If your clients are your motivation to learn coding, it doesn't surprise me at all that you don't love it. Most of (good) coders learn to code because they are simply fascinated by the coding itself. They are not paid for it.<p>If graphic design is what you love, maybe you could try to extend your contact network to digital media / e-business companies that would buy your designs and do the actual coding for their CMS? I used to be a web frontend developer in a company that regularly bought designs from "trusted" freelancers.<p>Having knowledge of HTML/CSS/JS is one of the key requirements for a good web designer, so your learning is absolutely not misspend.
rosejnalmost 15 years ago
If you don't know what's fun about coding, then you should just find something else to do that you do enjoy. Everyone I know who really enjoys hacking has been into it since day one, including myself. It's the general joy of wrapping your head around a problem, breaking it into bite size pieces, and then tackling them and getting psyched as you knock out working code. Initially basic logic constructs, iteration and recursion were enough to get psyched about, but later it is more about about the problems you are solving then the programming.
jggalmost 15 years ago
Doing my own thing in languages I like using was what made me enjoy it.<p>What you're doing now sucks. HTML and CSS are boring to write and, IMO, are better suited to being generated by a program than being explicitly written by hand. Vanilla Javascript isn't so terrible, but what you typically do with it is boring. PHP is terrible in so many ways I don't feel like naming them, and the type of thing you do with PHP is also fantastically boring.<p>You need to pick a high-level language that makes implementing things easy. You don't want to be bogged down in the details of implementation. You just want to think of something and have it work, right? Get started using Python/Lisp/Ruby/Perl/Whatevermakesyouhappy. Find a language that meshes with how you think and go with it.<p>Don't think I'm placing too much emphasis on language choice though. The important thing is to do something you want to do. Start writing the programs you want to see written, or that you think will be the most fun to write. I think the latter is more important in your case. You seem to enjoy the "thinking of" more than the "doing" part, a preference towards which I myself am inclined.<p>Good luck!
评论 #1446777 未加载
Ixiausalmost 15 years ago
It's boring because you are "coding" and not "programming". Coding is just pasting together libraries and pieces of code that have been written by someone else; there is little fun in that. Even the passionate and brilliant programmers out there will tell you that.<p>So, what parts of a project when coding are boring and monotonous? Program it, don't code it; IOW, create a utility or tool to automate that aspect of it.<p>Instead of copy pasting your controller from project A to project B to get started, write a script that will generate the skeleton of that controller for you. Find the little nooks and crannies of your project that could be cleaner, clearer, or abstracted enough to reduce duplicity of effort.<p>Programming is thinking and coding combined (you always have to "type" something), coding has the thinking aspect removed, which is why it gets so boring.<p>As has been stated, you simply may not be wired for it - in which case you should sub-contract the programming work to someone who is good at it <i>and</i> enjoys it. That's how I made the majority of my living the past year, I was sub-contracted by a designer who managed his own clientele.
dbzalmost 15 years ago
I do a lot of coding. Hours and Hours a day. A lot of that coding is for other people. I like coding, but there is something else I like. I like when people receive my code, take a look at it, and say "Wow. Erm. Thanks."<p>I like being appreciated.<p>I like thinking about how I am going to code something, and then doing it in an efficient algorithm; I like feeling as if I did something clever. I also like how I view everything in life differently because coding is a huge part of it.<p>The other day someone asked why I always respond to their texts 'no matter what,' and I said, 'well, people with a friendship level of 1 or higher always get a response.' They asked me to give them my friendship levels, so I had to make up a system on the spot- I said 'lowest should be (-2), wait no- (-1) so I can use bitwise operators,' and then structured the system around the use of bitwise operators just because I thought it was cute.<p>The fun in coding is the same fun that you receive in web design, however, I like to think that coding gives me more pleasure in more areas because I can use concepts I learn in everyday use, like ranking friends.
junkbitalmost 15 years ago
The way that I taught myself as a nipper was games programming. Even the smallest graphics demo can be very satisfying as you can tweak them till your hearts content; endless variations and incremental improvements.<p>I had to do it by hand in C and Asm (mode 13h ftw!) I'd imagine it's much easier now to start with OpenGL, XNA, Unreal Engine and higher level languages.<p>Also I never had screencasts. Or the internets.
drcodealmost 15 years ago
A computer program is a little world you build where you decide the rules and can see what happens. More than that, the rules are followed perfectly and you can observe your world thousands of times and it will always do exactly the same thing.<p>I think programming is the most amazing thing I've ever experienced (well, maybe second-most amazing ;-)
weavejesteralmost 15 years ago
<i>"I love solving problems too, but conceptually not through coding."</i><p>What's the difference? In my experience, finding a solution to a problem with a good programming language is easier than trying to do it entirely in my head.<p>That said, I don't count PHP as a particularly good programming language. Certainly not one I'd use if I could avoid it :)
keefealmost 15 years ago
&#62;the code might make the entire thing operate, but it never affects the user the way the design or interface does<p>sigh. interface=code.<p>the fun is taking an idea from your head and putting it into reality. This is kind of like asking where the fun in painting is cause it takes so many strokes to fill a canvas.
mattwdelongalmost 15 years ago
Coding, the actual process of writing out the code, is a fairly mundane task imo. I also don't like coding, but I LOVE to problem solve. As soon as it`s feasible for me to do so, I plan on assigning the task of coding to people who actually like writing code. There are many programmers out there who just can't problem solve either but are very good at following instruction - they can do the actual writing.<p>However, I have yet to find anything that matches the feeling of having what looks/feels/appears to be an insurmountable task ahead of you - a problem that someone says cannot be solved, and then you come up with the most creative solution to not only solve the problem, but do so, quicker, cheaper and easier than anyone else ever has.
johnl87almost 15 years ago
I like the feeling when a script executes and does what would take me 10 hours to do, in 2 seconds.
albertzeyeralmost 15 years ago
Let's try go from the other side: What parts of coding are so boring for you?<p>Is it that you have to redo and reimplement stuff again and again?<p>Is it that you know the algorithm but it is so complicated to implement it?<p>Is it that it does never really work like you intent it right out of the box?<p>Is it the debugging part?<p>Is it that the things you are implementing are just trivial things (which you maybe would expect to work just automatically and you don't have to care about this stuff in a perfect world)?<p>Or what else?<p>Many of these things are also maybe related to the language you are using. You should look a bit around and dive into other languages. You will find it amazing how trivial and easy some things can be done there. It could be that 1000 lines of boring PHP code become one single line of code in another language.
metamemeticsalmost 15 years ago
&#62;<i>For a web application, the code might make the entire thing operate, but it never affects the user the way the design or interface does.</i><p>Sounds like you're primarily talking about the backend PHP coding then? One option already mentioned is to learn a new way to develop backends that you find funner (ex. Python).<p>The other you should seriously consider is to team-up and form a partnership with someone who enjoys programming more. This way you focus primarily on User Interface which you seem more passionate about and have a friend whip out the backends. You will be able to tackle larger more exciting projects and your prior programming knowledge will make it easier for you integrate your design work with the developer's.
iamapipebombalmost 15 years ago
As with any preference, the illusion of choice is usually necessary. If you feel you have to be doing it, it's not going to be all that much fun, at least starting out.<p>To enjoy it, you also need to tie the effort put in to significantly rewarding output. You have emphasized the design, interface, and user. It doesn't take much to see the code as important to these things in a direct and easily manipulable way. For instance, the implementation of AJAX-y stuff on a previously static page has huge implications to the user. A few lines of jQuery can bump the feel of the page by a decade.
tethaalmost 15 years ago
Hum, I can't tell why coding is fun. I can however tell why I have so much fun developing my current project.<p>The project is a compiler to produce serialization and deserialization classes from a datatype description.<p>I have a lot of fun, because of the following things at the moment:<p>Sometimes, code approaches a level where the code itself is either clear beyond anything or where the code actually teaches you something about the problem you are solving. For example, in an abstraction of access paths through C datastructures (something like foo.bar-&#62;baz), my constructor calls for the various "steps" on the path look like: super(previousPath, "-&#62;", accessedMember). This makes me happy, because it is just so clear. You take the path until now, put a -&#62; after it and put the accessed member after that to get the new path. Or, in other words: super(previousPath, "-&#62;", accessedMember).<p>In other parts, I put up some work to get fluent interfaces and internal domain dependant languages going. Parts of the code suddenly look like: BeginWithDerivingSerialiser().andThen(padToByteAligned).andThen(minimizeDuplication).andFinallyEmit(C89) or in another part: return CompositeHash().whichDependsOn(members).andOn(name).andNothingElse().<p>These little things, coupled with the knowledge what hassle this was before these little DSLs makes me smile everytime :)<p>Furthermore, my little compiler is growing in visible steps. I have adopted an iterative development style by now. That means, I know inputs for my compiler which are not handled properly yet, and I know what I need to solve to be able to handle this type. From this knowledge, I can pick certain inputs to solve which require a bit more infrastructure to work. On the other hand, once I implement the next input, it is really fun to do so, because I see: This works, that works, I dont need to care about that, because this abstraction does that for me and so on and so on. This is fun, because I can see how a previously large problem shrinks in simple 1-2 day steps until it it is easy to solve and then I solve it and my compiler is stronger now :)<p>Third, as you said, code is a fun puzzle. Solving the issues at hand is just the first step. Sometimes it is complicated and you need to think a day about the problem, sometimes an algorithm is just known. But after that, nudging and shifting the code until it looks and feels really lean and elegant is very, very interesting. Maybe extracting this into a method works? Maybe turning these loops the other way works? Maybe inverting that if makes it nicer? Who knows! Lets try! Maybe it will become one of thos masterpieces :)
评论 #1447139 未加载
rikthevikalmost 15 years ago
For me, the fun is writing good frameworks so that new features are easy to write. If you've done a good job of A, B and C, then coding up D, E and F is relatively easy. It's a great feeling when your attention, care and forethought pay off.<p>Conversely, when you're dealing with a teetering, creaky code base and writing feature D means rewriting A, B and C, that is not so much fun.<p>(I find PHP to be extremely un-fun as well. Try Python or Ruby - languages written by people with more of a clue.)
pavelludiqalmost 15 years ago
I am a passionate programmer. I've never found coding itself to be fun, its more like a ritual for me. I've found that if what I'm building is good, eve though actually coding it is boring, i still feel fulfilled by it. If on the other hand I'm doing a shitty job, i feel bored, frustrated and i do an even shittier job because of it. My advice would be to try to learn new thing to improve your skills and do a better job, maybe it would help.
hoopadoopalmost 15 years ago
No. You need to be a deluded megalomaniac who believes copying code from the web makes them the worlds greatest super-genius. Be thankful you're not that fucked up.
petercooperalmost 15 years ago
<i>The problem is that I dislike coding. I find it to be very boring.</i><p>"The problem is that I dislike practical work - making or fixing things with my hands. I find it to be very boring. Where's the fun in messy, practical things?"<p>Different strokes for different folks. If you don't find programming inherently interesting, it's probably not your schtick. It sounds like you might prefer SEO, content architecture, or a similar related discipline that's not code based.
MisterWebzalmost 15 years ago
I didn't like it either when i first started programming. But i kept programming until i felt comfortable using the language. That's when i started enjoying the whole process(Well, some things were still boring.) of building a website. I do get discouraged once in a while when i see how inexperienced i am, but i just keep programming.<p>Maybe the problem is that you're not completely comfortable with the programming language?
basicxmanalmost 15 years ago
Mindlessly setting up CMS' and things are nice, at the beginning, we all need change. The real fun in coding lies in solving challenges, not repeating the same solution over and over again. A lot of times programming is just a medium for solving problems, and it's the thinking that is fun. People enjoy _programming_ not plugging libraries and CMS modules together.
benofskyalmost 15 years ago
The problems one solves in basic web development is to be honest, kinda boring. For most websites it's just CRUD (create, read, update, delete); coding in this case is just a form of glue.<p>Coding gets interesting when you're solving and implementing problems like PageRank, which you're not doing (I'm assuming).
andrewtalmost 15 years ago
I think that the whole idea of asking someone else to explain "where the fun is in coding" is somewhat of an oxymoron. If you cannot find the fun yourself, it is hard to believe that you will be able to find it by someone else telling you about it.
esoterickalmost 15 years ago
For a web application, the code might make the entire thing operate, but it never affects the user the way the design or interface does.<p>Without the back end the site wont do anything... therefor your "design" is useless...
hippichalmost 15 years ago
Find a friend who passionate about coding and start working togather =) If you can't find such friends - find another good freelancer for that purpose =)<p>I believe ideally everyone should do just what he like the most =)
d0malmost 15 years ago
Each part of programming is challenging and this is something I need to keep on days after days.
charlesjualmost 15 years ago
For me it's a very similar sensation to completing a Sudoku or Crossword puzzle.
wglbalmost 15 years ago
I have been programming for a long time, and I don't think I can give a totally articulate answer to that question. Well, I do have answers, but they don't make seem to make sense to anyone but other programmers.<p>Part of it is the reward from solving difficult problems or puzzles. And with the risk that you might not be able to solve the problem. Part of it is the creation of something that didn't exist before. Part of it is, when you are in the zone, time disappears.<p>Some of the problems in this business are pretty intractable, or at least appear that way. I remember once when I was younger I got this idea in my head that I wanted to solve algebraic problems by programming. At the time, I was working on the IBM 1800 (architecturally equivalent, instruction-wise to the 1130) (like that really tells people anything), which was a 16-bit accumulator-type machine with maybe five registers. I worked on this for maybe a month, to the point where I felt mentally strained. So I backed off, never solved it. Later, I heard about maxima. I wasn't even close.<p>But that seems to be the rule, rather than the exception for things I have been involved in. I mostly start things these days that I have no real clue whether or not I will succeed. Real-time acquisition of electrocardiogram data? We certainly didn't know the horde of sub-problems we were going to encounter, and certainly did not stand around enumerating the risks. We just forged ahead. The Matasano challenges? Talk about staring at a web page for a couple of hours with no clue. (That worked out well, as I now work there.) (And despite what tptacek self-deprecatingly says, he is marvelous to work with and work for.)<p>Compilers? Didn't you ever wonder "hmmm, I wonder how this works", or "why does FORTRAN have this clearly stupid and trivial limitation on elements on the DO loop?" I got a fire in my belly about that one for sure. But I had no idea or expectation that this would lead to a career.<p>Or the google code challenge. I got it in my head to try this out, kind of to flex the muscles. That was an education. But I learned something.<p>I know that there is a lot of talk on this forum about "fail early, fail often". I think that perhaps the original intent of that admonition is "don't stand around enumerating risks. Dive in, push forward, adjust, repeat". So in the words of the protagonist in <i>The Art of Racing in the Rain</i>, "your car goes where your eyes are". To translate, "don't look at the wall, look at the track".<p>So any programming ability can give enormous leverage in many areas of modern life. Full-on programming ability more so.<p>If you don't have a deep curiosity about how this complicated stuff works, I am at a loss as how to describe that to you, as that is where I come from and where I live.