Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

New thing is not always cool.

I see many people say they are very bored by doing the similar things day after day. For me it's the opposite - I'm always learning something new. During the last one and a harf year, nearly every two months I need to do lots of researches on a totally new topic: RTMP, MP4, SIP, VNC, Smooth streaming, ..., I have to read lots of specifications, download tones of open source projects to understand concepts, and turn them into my runnable code.

And it was so bad! My brain has never been very sure and very familiar with anything, and when it's close to be sure and familiar, it'll have to switch to next thing. I kind of envy people who build upper level applications because they can be very focusing, and their knowledge set includes most things their job requires. Everything is quite measurable, direct and straightforward.

Have you ever had the similar feeling? I'm thinking of asking my boss to assign me some other piece of work so that I work like moving forward on a broad road instead of figuring out a way in the dark, I think it'll be more relaxing, any suggestion?

share|improve this question

closed as not constructive by ChrisF Aug 17 '12 at 7:59

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

6  
One of the most important skills for a developer is to be able to find a solution where none were before. In other words hacking your way through the jungle to the remote peak you see in the horizon. This doesn't imply you have to do it all the time - but you will see repetition enough in your career.. –  user1249 Jul 1 '11 at 7:24
    
@Thorbjorn Yes I'm seeing the repetition, and I think I see it too often. –  tactoth Jul 1 '11 at 7:28
1  
in that case enjoy that you learn every day. –  user1249 Jul 1 '11 at 7:29
    
I suggest you are still quite young :) and you should try everything if possible. Unless you are very sure what you want to do, then you can stick with it. –  Phelios Jul 1 '11 at 7:29
3  
@tactoth: you realize your brain hurts because it is holding twice the amount of knowledge of a MSc or PhD student, don't you? (it's monetizable too.) –  rwong Jul 1 '11 at 7:51
show 1 more comment

8 Answers

up vote 9 down vote accepted

It's about balance. Never learning anything new is ... unstimulating. That is terrible.

Equally, always having to rush to learn things, and never enjoying the thrill of mastering something, is exhausting.

As a developer you should never stop learning. And sometimes you'll have to learn slightly irrelevant things - legacy systems and the like. All that's okay, so long as you're not always poking around uncertainly in the dark.

The worst part about that is you're probably being treated as the 'expert', and you feel the pressure of knowing what you don't know.

I don't think that there's anything wrong with saying that you feel saturated as a 'jack of all trades' and would like to focus more on a particular area. Try to highlight the business benefits. If there aren't any - well, the business needs to focus a bit more.

share|improve this answer
    
Among all these answers I find this one actually answered my question, and makes me feel myself being understood. Great answer, very meaningful and to the point, thanks. –  tactoth Jul 1 '11 at 9:29
    
That's 'cos I've been there with you! You ain't alone! –  Andy Burns Jul 1 '11 at 12:51
    
So the experience you got out of this situation is likely to work for me, rocks! –  tactoth Jul 2 '11 at 1:55
add comment

I'm guessing most people have the opposite problem that their job doesn't give them enough opportunities to learn something new. You should welcome this great chance and make full use of it.

Learning is just part of being a good developer. It is simply impossible to know everything about a particular field. Even if you have specialized on a single language or framework there are always new things to learn. The moment you stop learning about new techniques, frameworks, or related technologies is the moment you start becoming obsolete yourself.

Thus you need to learn and experiment on a continual basis. You should also never be ashamed about not knowing something. No employer reasonably expects their team to know everything.

That said there are jobs where you can be so specialized that you have only a limited number of things to learn to keep pace with your job. I'd suspect an average job board has several such listings. Such jobs ultimately are replaced I'd suspect (as the technology changes), though some may linger indefinitely.

share|improve this answer
    
When I look back to the past 2 years, I realize being forced to learn has brings me tons of benefits. What I've learned added to my specialties list and I get many opportunities. I love it now! –  tactoth Oct 14 '11 at 9:14
add comment

It depends. Having to learn badly written legacy systems just to clean them up is very painful. Getting to know new frameworks or systems that can be reused or help me get new consultancy assignments is fun and interesting.

Also, learning becomes easier. The more you learn the more you will recognize patterns. I now do things in a week that would have taken me two months ten years ago, all because I see patterns early and can fill in the blanks from similarities of other systems.

So the advice would be; try to find something the next new thing that motivates you, and try to become better at the "meta-skill" of learning.

share|improve this answer
    
The meta-skill of learning, would really be useful, as long as it's actually transferable. –  tactoth Jul 1 '11 at 9:24
    
I wish I could point to some research to support this, and not only to my own subjective experience. I'd be interested if someone knows of any good studies into learning methodologies. –  FeatureCreep Jul 1 '11 at 9:37
add comment

Never. If I'm not learning I'm dead and I don't just say that because I'm a student at the moment. Learning is the essence of being a technologist of any kind and particularly one dealing with programming. It becomes about the right tools for learning and retaining good, useful information forever and learning valuable lessons from the bad stuff.

Uncertainty is part of the job description. Any field, any time frame. A soldier faces uncertainty everyday, will I be strong enough to deal with what comes over that next ridge? Even the retail clerk lives with the uncertainty of the customer. It is, plain and simple. That's why they teach us statistics.

If you aren't pushing the limits of what you can do, you won't survive. Smalltalk was hot stuff a while back I'm told. Now, not so much. I hear Javascript is gaining steam but who knows? The point is to be ready to deal with whatever comes over that next hill so to speak. It's about a toolkit and an approach, not specifics. Sure details matter but that's where you use references and problem solving to fill in the gaps. That's my take anyway.

share|improve this answer
add comment

I have been in IT and software engineering for more than 20 years, and there wasn't a single year when I did not learn some major new technology or programming language. By now the field is so wide that nobody can be expected to have decent knowledge of everything that is out there. And I never felt bad about it.

In fact, in most engineering disciplines what you really learn at university is not the current flavour of programming language or database or design technique. What you really learn is the skill of learning, and how to do your own research.

The day you stop learning, is the day you start going out of business.

Having said this, there are times when it all seems a bit too much. In those times I usually draw up a list of priorities (agreed with my boss, if possible) and then I focus on one thing at a time. And I realize that not all of us have the same learning speed. I can learn very fast, but I have seen people (very good people) who could not follow that speed. OTOH, they could remember things better than I can. We all have different propensities. If you feel exhausted, then maybe it's time to take bit of a breather. Talk to your boss, by all means, and see whether you can take the foot off the gas pedal for a month or two. After that, you'll feel better and probably be ready for the next step.

share|improve this answer
    
This is another good answer. I think there 'easy learning' and 'hard learning'. To learn a new programming language/framework is often easy, but to learn a system of totally different fiend can never be. For me I do the later, sometimes in a switch you'll have to learn several new programming languages. –  tactoth Jul 2 '11 at 2:21
add comment

I personally feel bad when I have to learn something tedious and generally useless. Be it some scientific fancy — you're always welcome, but when it comes to

'How do I do that advanced thing with that damn outdated database which our customer just doesn't want to touch'

or someone tells me

'Man, we have to use Autotools in this project because they feel that there's something wrong with cmake'

— I'm at real pain and depression.

share|improve this answer
add comment

From my interpretation it appears that you are working on the area which does not interest you much.

If you find that you are getting overloaded, just focus only on the things which really excite you.

share|improve this answer
add comment

Yes, I do, depending on things I have to learn.

I'm a C/C++ developer and I enjoy working with close to metal languages. I also know that I want to continue specializing in this field, because the languages are vast and the problems you encounter are unlimited.

Unfortunately, time after time I'm forced to work with languages like .NET, Java, Perl, JavaScript. And I really don't enjoy that part. If I have a problem that has to be solved in 5 minutes and setting things up in C/C++ is longer, I just pick the .NETlike/garbage collected language. But I don't even want to learn advanced concepts in them, or how to write language friendly code in them.

Concepts carry over, things like std::map translates to things like Dictionary, and that's all I want to know. I don't want to spend 5 years to master (insertlanguagehere) for instance, when I can write a good code in my language of choice without all that time wasted on studying best practices of (insertlanguagehere).

I do like to study in my field/language though. Or new technological problems like networking stacks and solutions, file systems, synchronization patterns, etc.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.