Какие есть узкие, но востребованные специализации в программировании?
=======================================================================

 Уважаемые программисты, расскажите пожалуйста, какие узкие специализации есть в таком большом деле как программирование. Который раз читаю посты на Хабре, и везде пишут, что самый востребованный специалист - это хороший узкоспециализированный профессионал. Я, как студент второго курса и уже вроде как более менее разобравшийся что к чему, наверное смогу и должен работать в совершенствовании себя в какой-то конкретной области. Но вот выставить границы, отделять одно от другого не очень получается. Заранее благодарю. 

 Я думаю, что для начала Вам нужно самому понять что Вам больше нравится. А для этого нужно иметь довольно широкую специализацию. А вот уже, когда Вы решите, чем именно Вы хотите заниматься, тогда и углубляться именно в эту тему.  
  

И да. Мое мнение, что заниматься следует не тем, что приносит хорошие деньги здесь сейчас, а тем, что действительно нравится. А Вот если Вы испытываете кайф от той работы, которой занимаетесь, то тогда деньги придут за Вами.  
  

И еще. ИМХО. Если Вы будете узким специалистом в одной отдельно взятой технологии, которую продвигает какая-то отдельная компания, то рано или поздно можно попасть, что эта конкретная технология окажется устаревшей. Конечно, если много людей и проектов было завязано на этой технологии то, вряд-ли от нее полностью откажутся сразу и внезапно. Но тем не менее, может оказаться, что востребованность специалистах по этой конкретной технологии начнет падать. Поэтому лучше быть специалистом в широком круге смежных технологий, специализируясь при этом на какой-то ожной из них. Кажется, что-то подобное было у Спольски, но не помню точно где. 

 Ту сферу, которая нравится. На втором курсе надо бы уже определиться.  

Еще совет: самый эффективный источник получения практических навыков - практика. ВУЗ учит учиться, но практических навыков не даст. Поэтому придется совмещать ВУЗ и работу, либо отказаться от ВУза. 

  

Так что в случае, если окончательно загнется какая либо из моих специализаций (Swing/Applets), то я спокойно буду работать дальше с другими технологиями.  
  

И да, после выбора специализации нужно самостоятельно изучить технологии ровно на столько, чтобы взяли на работу. Что-то выучили - сходите на собеседование в парочку разных фирм. Там быстро дадут понять, что выучили мало. Но заодно и подскажут куда именно копать.   
  

Реально учить будут на работе, а не в ВУЗе. А дальше - как заходите. 

 C++ embeded linux developer  

Linux kernel hacker 

*узкой специализации*  

Узкие специализации обычно **содержат много специфичной теории** и рассчитаны на то, что вы будете минимум 1 Phd писать, ну или лет 3-5 заниматься исследованиями.   

В таких областях есть следующие трудности:  

1) В России если и есть, то вакансий мало и платят мало (НИИ всякие).  

2) Уехать за границу можно, но нужен немалый опыт, а получать его вам в России (см. 1).  

Например, Rigid Body Simulation, Realtime Render, Embeded Systems. Звучит круто, но поймите, что на западе этим занимаются преимущественно в вузах. И на продакшн выводят отточенную технологию, которую писали несколько лет, на стипендию. 

 Помните, что вам предстоит проводить на работе примерно треть своей жизни (и еще примерно треть будете тратить на сон). Поэтому занимайтесь тем, что нравится. И станьте в этом специалистом.