
Ask HN: Where's the fun in programming? - alexwyser
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?
======
scott_s
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.

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.

------
leftnode
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.

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).

Here's an example: a client I worked with sells sheet music to schools and
churches. There's _a lot_ 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.

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.

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* (<http://en.wikipedia.org/wiki/A*_algorithm>). 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.

Enjoy!

PS. If that doesn't get you going, perhaps you just don't enjoy programming,
and thats fine too.

~~~
angilly
Slightly off topic, but this jumped out at me: "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..."

If I were your client I could see getting fairly annoyed at this. Is/was your
client pissed that you spent (wasted) time building something from scratch
when you could have just used something open source? Or were there legitimate
reasons in this case to build something from scratch?

~~~
rbrcurtis
If clients knew there was a boxed solution available they either 1) wouldn't
need you or 2) would tell you up front to use the boxed solution.

------
10ren
See p. 7 of Brooks' _The Mythical Man-Month_ , for "The Joys of the Craft"
[http://www.amazon.com/Mythical-Man-Month-Software-
Engineerin...](http://www.amazon.com/Mythical-Man-Month-Software-Engineering-
Anniversary/dp/0201835959#reader_0201835959)

He lists 5: creation; usefulness; intricacy; constant novelty; tractability.

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.

Now, in practice, it isn't always that easy. Code that can be reused generally
is _much_ harder to write than code for one specific case (the literal meaning
of _ad hoc_ : "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).

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 _making them real_. 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.

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.

------
dieterrams
It wouldn't surprise me if the sort of code you're writing is boring. A lot of
website dev is.

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.

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.

------
irahul
> So I learned HTML, CSS

IMO if you don't do HTML/CSS, you aren't a web designer.

> 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,

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.

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.

I can say I conceptually solved a problem but practically, all I did was
whine, some wishful thinking and showed my ignorance.

> 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.

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.

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.

~~~
alexwyser
Google's a great search engine, and its all due to their brilliant algorithms
and codes and everything.

I get that.

The programmers at Google are tackling a lot of problems and coming up with
birlliant solutions.

I get that.

I just cant imagine someone has fun writing those thousands of lines of code.
Even more so when the code isnt for a cool new feature but for a mundane fix.

I image a lot of programmers at Twitter spend hours writing code just so their
site/product can handle all the traffic. How it that fun?

~~~
ableal
> spend hours writing code just so their site/product can handle all the
> traffic. How it that fun?

It's a personal offense to have something that could work at, for instance,
20MB/s, only performing at half the speed. Sometimes management has to step in
and and put a stop to that if it's not worth the effort.

Could be worse - seems athletes put many hours in shaving down a couple
hundredths of second in races, etc. Or designers in getting that last pixel
perfect ...

~~~
chronomex
I'm currently writing an emulator in assembly, I certainly spend hours shaving
microseconds. :)

------
gte910h
>Can anyone passionate about coding tell me where the fun is in coding?

You're doing a very unfun form of coding. IMO.

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.

You may wish to try outsourcing the coding portions and taking on more volume.

~~~
nopassrecover
Yeah HTML/CSS/Javascript and PHP are some of the worst possible examples of
"coding". I was forced to use PHP on a recent project and I felt like tearing
my eyes out it was that bad and immature compared to other methods. It was
like telling a formula one driver they have to drive through peak hour in a
rundown 1970s ford and then asking if they like driving.

~~~
rimantas

      Yeah HTML/CSS/Javascript and PHP are some of the worst
      possible examples of "coding"
    

So sad to see similar statements. I am the only one who _loves_ working with
HTML and CSS? I wouldn't say I love PHP, sure it is not the best language out
there, but it is not _that_ bad. Unless you never bothered to check out what's
in PHP 5 (or 5.3) and keep going with PHP 4 code.

Don't dismiss HTML. Sure, it is not programming, but so often good programmers
produce crap HTML maybe dismissing it as trivial and not worth learning
properly. However producing page in HTML and CSS involves a lot of similar
activity: you evaluate the whole system (layout) you have to build, identify
different parts, decide how to code them in proper, _semantic_ way, avoiding
unnecessary elements, then style it all in CSS, maybe enhance with some
Javascript. At the same time you don't forget about progressive enhancement
and graceful degradation, cross browser support (this is less fun part).

I think the task of splitting that finished visual picture of design into
proper HTML structure and CSS decoration is the actual difficulty some are
facing, but mistakenly thinking thats the problem with CSS.

And now, with HTML5 on the doorstep and all the fun CSS3 allows front-end
coding is even more exciting. My recent interest — client-side optimization
adds to this excitement. I learned about programming by reading code in some
magazines (had no access to computers till my first year at university), now
I've been coding for 20 years, doing web work for 14, went all the way from
first HTML being rendered in Netscape 2 through table layouts (oh those nested
tables to get 1px border in IE and 1x1 GIFs…) to CSS3 layouts with fun effects
rendered in WebKit nightly. I am equally well versed in both client side and
server side development, but I'd say that even after all these years I still
think client-side work is a lot of fun.

I initially was attracted to web because I enjoyed learning and trying a wide
range of technologies: from working with graphics in Photoshop to setting up
and configuring Apache. Still feeling the same.

~~~
Yaggo
> I am the only one who loves working with HTML and CSS?

No. HTML/CSS coding (or "markupping") is somewhat under-valued skill. Maybe
that's because everybody and their neighbour's dog can do it (well, at least
produce some results), but only those who really master it can see what's the
huge difference between good and average/bad markup.

The only thing which really bothers me about web frontend coding, is huge
quality variance of different runtime implementations (read: IE). Working for
my own startup partially solves this problem, because I can decide whether I
want to "support" these flawed implementations. To summarize, I want to solve
real problems with proper tools, not artificial barriers caused by poor work
of someone.

------
nopassrecover
"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."

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?

It's like saying, "the PSD image never affects the user the way the design or
interface does".

------
amanuel
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.

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.

Dislike, frustration and boredom are the taxes you must pay to learn anything
new that is worth learning.

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.

Code or read someone's code on Github everyday. It will get easier and more
fun.

------
tptacek
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.

------
cromulent
The fun is in the parts when you get to be creative.

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.

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.

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.

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.

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".

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.

------
Khao
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.

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.

~~~
alexwyser
I too like finding the logic behind how everything works and how to implement
a certain feature. And I can think up innovative (and effective/efficient)
solutions to problems, But I find it very boring to translate that into lines
of code.

For example, I can think up a way in which users will never have to register
or login to individual websites, by storing all their information on their
browsers, and I can find a millions flaws in that concept and solutions for
all of them. And I have fun doing that. But I could never sit and write the
thousands (or millions) of lines of code to make that work.

~~~
zb
I think this might be where the disconnect is. If you think up solutions and
translate them into code, then I can certainly imagine the translating part
could be very boring. That's the 1960s model of software development (still
going strong in some quarters, of course).

Programmers think up solutions _in code_. If you stick with it you'll probably
eventually come to realise this.

------
kirvyteo
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.

------
philwelch
"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."

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.)

------
Yaggo
> Most clients just want a complete functional website not just a design. So I
> learned HTML, CSS and eventually Javascript, and PHP.

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.

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.

Having knowledge of HTML/CSS/JS is one of the key requirements for a good web
designer, so your learning is absolutely not misspend.

------
rosejn
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.

------
jgg
Doing my own thing in languages I like using was what made me enjoy it.

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.

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.

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.

Good luck!

~~~
gtani
_Python/Lisp/Ruby/Perl/Whatevermakesyouhappy._

Note all the hubbub about functional languages:

1\. Common Lisp, scheme (ML/haskell people argue they're not fully FP).

2\. Haskell and erlang have been evolving since the 80's into really powerful
constructs.

3\. Scala, clojure, F#, JRuby, groovy for JVM and .NET CLR.

4\. OCaml, SML, some other ML's.

5\. And also some you don't hear about so much: clean, dylan

------
Ixiaus
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.

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.

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.

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.

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 _and_
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.

------
dbz
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."

I like being appreciated.

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.

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.

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.

------
junkbit
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.

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.

Also I never had screencasts. Or the internets.

------
drcode
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.

I think programming is the most amazing thing I've ever experienced (well,
maybe second-most amazing ;-)

------
weavejester
_"I love solving problems too, but conceptually not through coding."_

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.

That said, I don't count PHP as a particularly good programming language.
Certainly not one I'd use if I could avoid it :)

------
keefe
>the code might make the entire thing operate, but it never affects the user
the way the design or interface does

sigh. interface=code.

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.

------
mattwdelong
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.

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.

------
johnl87
I like the feeling when a script executes and does what would take me 10 hours
to do, in 2 seconds.

------
albertzeyer
Let's try go from the other side: What parts of coding are so boring for you?

Is it that you have to redo and reimplement stuff again and again?

Is it that you know the algorithm but it is so complicated to implement it?

Is it that it does never really work like you intent it right out of the box?

Is it the debugging part?

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)?

Or what else?

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.

------
metamemetics
> _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._

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).

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.

------
iamapipebomb
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.

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.

------
tetha
Hum, I can't tell why coding is fun. I can however tell why I have so much fun
developing my current project.

The project is a compiler to produce serialization and deserialization classes
from a datatype description.

I have a lot of fun, because of the following things at the moment:

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->baz), my constructor calls
for the various "steps" on the path look like: super(previousPath, "->",
accessedMember). This makes me happy, because it is just so clear. You take
the path until now, put a -> after it and put the accessed member after that
to get the new path. Or, in other words: super(previousPath, "->",
accessedMember).

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().

These little things, coupled with the knowledge what hassle this was before
these little DSLs makes me smile everytime :)

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 :)

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 :)

~~~
lmz
Your project sounds interesting. Do you get paid to write such things?

~~~
tetha
No, it is my master thesis and will eventually become some open source project

------
rikthevik
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.

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.

(I find PHP to be extremely un-fun as well. Try Python or Ruby - languages
written by people with more of a clue.)

------
pavelludiq
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.

------
hoopadoop
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.

------
petercooper
_The problem is that I dislike coding. I find it to be very boring._

"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?"

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.

------
MisterWebz
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.

Maybe the problem is that you're not completely comfortable with the
programming language?

------
basicxman
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.

------
benofsky
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.

Coding gets interesting when you're solving and implementing problems like
PageRank, which you're not doing (I'm assuming).

------
andrewt
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.

------
esoterick
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.

Without the back end the site wont do anything... therefor your "design" is
useless...

------
hippich
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 =)

I believe ideally everyone should do just what he like the most =)

------
d0m
Each part of programming is challenging and this is something I need to keep
on days after days.

------
charlesju
For me it's a very similar sensation to completing a Sudoku or Crossword
puzzle.

------
wglb
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.

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.

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.

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.)

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.

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.

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 _The Art of Racing in the Rain_ , "your car
goes where your eyes are". To translate, "don't look at the wall, look at the
track".

So any programming ability can give enormous leverage in many areas of modern
life. Full-on programming ability more so.

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.

