I've been programming for 8 years now (since I was 15), and working with internet for 7 of those.
I remember when I first learned how excited I was when I was taking my firs Pascal lessons... I thought in code, and was always experimenting, even with my limited knowledge.
When I got my first job (the same company I'm still working today) they basically asked me if I knew HTML and told me to learn ASP.
So I was beeing challenged constantly with new stuff to figure out how to put to work.

Years later I got into Computer Science college and the programming classes went just fine, busting my mind with all the algorithms, and data structures, complexity, all that...
That was when work started to become very boring.
We're a small internet company, designing websites with our own CMS behind it. And for a series of reasons the company just didn't seem to evolve, and all the people from whom I learned much walked away. Leaving me, a part-time programmer as the "senior" programmer, having to answer questions from people who should know more than I do (since they get paid more for hour). And beeing the go-to guy when you're not beeing paid to be the go-to guy is something that kills me. I always liked working with people smarter than me.
Also, the projects are very badly managed and are always pretty much the same stuff. There's no challenge whatsoever, except when I stall management just to add some cool stuff in javascript on my own. I've been severely unmotivated with doing the same things day in and day out. I've been diagnosed with ADD, so having repeating tasks everyday is a ridiculously hard thing to stand.
I've also got a feeling that everyone in my field went ahead technically while I was stuck with the same old ASP forms...

I've kept myself kinda updated, reading as much as I can about new things but as an ADD person, managing time is very hard and I haven't had much practice... and I have noticed that when I had absolutely no patience and focus whatsoever for my end-term works in college. They were simple tasks, one involving liked lists and the other an AVL binary tree and I just couldn't find any happiness or joy in trying to solve those problems, so they took me a huge amount of time, which wouldn't have happened some 3 years ago.
The thing that I'm alway worried is that I just don't know as much as I should... I know C, but not a lot of C. I know JS, but not a lot of JS. Same with HTML, CSS, C++, and so on.

Because of that I've decided hat I'm learning at least one new language this summer vacations (south hemisphere here), and learn it well and develop something from start to finish, whatever it is, just to get going again with the whole "programming-rush".

But in a fast changing environment like ours, could it be too late? do you have any tips for me to start liking programming again? Sorry for the long question, but it's almost like my future is at stake. and don't wanna do anything other than programming, but I feel like I'm not a good programmer anymore.

+1  A: 

You might find the many answers to this question useful: How to stay motivated on the job

There are also several similar questions tagged with "motivation".

+1  A: 

It sounds like you're burned out; I answered some of those questions with this answer; maybe it'll help. link text

+3  A: 

I stumbled across Project Euler and decided to give it a try.

I've learned that I feel a great sense of satisfaction by learning new languages, as well as learning new paradigms. I may never be cutting edge, but I can always try.

Also, don't hide behind your ADD.

+1 for not hiding behind ADD - that's no excuse at all.
Erik Forbes
It's not hiding... I do a pretty nice jobing facing it, but a few times it wins. But you're right, it's not the only reason I've not kept myself updated outside of my work
FWIW, I have been diagnosed with Adult ADD, and though it makes things harder at times, it's never an excuse. I just wanted to mention that, just incase my comment came across as insensitive.
Sherm Pendley
@Alan, I didn't find it insensitive at all. That was actually a major concern for me when I got diagnosed, to not use it as an easy way out of things
learn to leverage your ADD
+10  A: 

It is absolutely never too late. It sounds like you enjoy being challenged, so the key to finding happiness again is to seek out greater challenges. If you are bored at the job, look for another one. There are plenty of companies out there right now who are desperate for creative, talented programmers.

Feeling bored by the lack of challenge is perfectly normal, and happens to us all. Have a look at the diagram in this SO answer. You have a high skill level, but low challenge, so you feel bored and unmotivated. All you need to do is up the challenge level, and your enjoyment will come back.

Learning a new language is an excellent way to start. Have fun with it!

+3  A: 

I know exactly what you're feeling.

You could try to learn Haskell. Trust me on this one, not only will it challenge (and continue to challenge) you in totally new and different ways, it will also make almost every other language appear clumsy and inelegant.

Say what you want, but Haskell is really sugar for your mind.

The first thing they tought us in college was Haskell, fun times trying to abandon a lot of what we knew and learning the Haskell way of doing stuff. It is a pretty awesome language indeed
+1  A: 

I feel like you put too much emphasis on 'knowing JS' or 'knowing HTML' or 'knowing a language'. I think you should try to channel that energy into learning and reading about those languages so you can feel productive and fulfilled at your job.

+2  A: 

I've been programming since 1979, and I still absolutely love it. I find programming stuff I like to be a form of relaxation now.

The key is to be doing something you love. If your job is not fulfilling and you cannot change just yet (happens to us all), then start looking for some hobbies.

In addition to reading a computer-related book constantly (i.e. read voraciously), I also took up a couple of non-computer hobbies (SCUBA diving and glassblowing).

But I still spend most of the day on the computer, and much of that programming. The secret is to do a variety of things so you don't get bored with one. So in addition to my main programming (I've written a large client/server system before the current teaching job), I've played with robotics, assembler (embedded systems), LEGO Mindstorms (way too much fun!!!) and a host of other programming stuff.

The key is variety.

Oh yes - It's never too late to be learning new stuff.



+1  A: 

Similar situation here... I was just coming into my own as a decent developer, and then I landed a job with the best employer in town. Major disappointment and frustration when I found out their technology and process are old and sucky, and that I'd have to do a lot of drudge work to support legacy enterprise systems.

My response (after wrestling with the decision to stick with the new job for the better salary and work/life balance)? I founded my own software company and I code my own stuff on my time, using current technologies that I want to use. If it looks promising a bit down the road, I'll hire contractors as needed to do some of the bits that give me trouble. It may end up to be a completely failed venture, but I will at least keep my brain alive and functioning. Best case scenario, I'll succeed and be able to produce a viable product, quit the day job and do my own thing. Worst case, well, I spent money on a new PC and some software, and I wasted some time. But I'm smarter and more interested and engaged in my profession for the effort.

It's a little expensive to get set up, but that was my solution and to me it is worth it.

Good luck!

+1  A: 

It sounds like you're in a job that isn't too good for you. Changing jobs should be considered, but you need some kind of confidence reboot before going to interviews.

Learning a new language could be one way of boosting your confidence and giving you a creative break from your job. Also, see if you can do some rich client programming. Whenever I work with web stuff too long, I miss winforms, and vice versa.

Revitalize your love for programming. Find your way back to that good feeling you once had. Was it the learning you liked? Was it the joy of problem solving? Was it the creative joy of making something new? Was it leaving other thoughts for the deep concentration?

Ad ADD: It sounds like you know your strengths and weaknesses. I think this is the time to focus more on your strengths, more than battle your weaknesses.

I have a feeling that you have already made a decision, you just want to rationalize it before you act on it. Good luck!

+1  A: 

I suggest:

  1. learn a new langauge (spend 2 months actually learning it fully)

  2. start a open source project with an idea of yours (start small)

  3. use that new language you learned in that project.

Dont feel bad for not feeling challanged the software industry is not all about rock star programming. We all have times of boredom.

+1  A: 

You're a young man, and you probably have fewer commitments in your life now than you ever will in the future. Now is the time to venture out and do something crazy! A lot of people with ADD actually excel as entrepreneurs, especially when they can provide leadership to a solid team. You could work as a contractor for a while, and learn the business, then do it solo. Better yet, be visionary and start your own business.

Just keep learning!

ADD stands for "Attention Deficit Disorder": It's something of an epidemic among America's youth.
+4  A: 

if you are still in the same job for the same company and everyone senior to you has departed and you are still using 'classic' asp after 7 years, the best advice is:

**get out!**

get out before the techno-market totally passes you by.

or at least ask - if not beg! - your employer to let you transition them to a more modern language/platform.

Steven A. Lowe
+1  A: 

It isn't too late although I would suggest a few things to sort of get your house in order:

1) Document what things you have where you work currently that you like and don't like, e.g. how smart are the people around you, what structure does the IT department have, do you even want to be in IT, etc. Do you like programming the front-end, middleware, or back-end mostly?

2) Make a list of what kinds of dealbreakers would you have in another job. Would you take a pay cut to work with bleeding edge technology? Would you like a higher salary but still use older technology but in a non-profit organization?

Think about what you know you really really want, what you couldn't stand and start getting out there to find a better job than what you have now. Having a "can-do" attitude and a little drive are what I think you have to have which I think you probably do have so go do it.

JB King