Какие области специализации в программировании вы бы порекомендовали новичку [закрыто]

Я студент, изучающий разработку программного обеспечения, и я чувствую, что программирование, в общем, слишком широкий предмет, чтобы пытаться знать все. Чтобы быть опытным, вы должны решить, на каких сферах сосредоточиться ваше обучение и понимание. Определенные навыки объединяются друг с другом, такие как веб-разработка на основе данных и опыт работы с SQL. Однако весь опыт работы с Win32 API в мире может не иметь прямого отношения к разработке под Linux. Это заставляет меня поверить, что, как начинающий программист, я должен начать решать, где я хочу специализироваться, после того как у меня будет общее понимание основных принципов разработки программного обеспечения.

На самом деле это вопрос из нескольких частей:

  1. Каковы общие специализации в области компьютерного программирования и разработки программного обеспечения?
  2. Какие из этих специализаций имеют более долгосрочную ценность, как основа для других специализаций и / или как рыночные навыки?
  3. Какие наборы навыков дополняют друг друга?
  4. Существуют ли области специализации, которые препятствуют вашей способности развивать другие области специализации.
20.08.2008 01:59:08
Kristopher Johnson 18.05.2009 17:13:09
6 ОТВЕТОВ
РЕШЕНИЕ

Бен, почти все опытные программисты все еще являются студентами в программировании. Вы никогда не перестаете учиться чему-либо, когда вы являетесь разработчиком. Но если вы действительно начинаете свою карьеру, то вам следует меньше всего беспокоиться о специализации. Все API, фреймворки и навыки, которые вы ожидаете, что дает вам долгосрочное существование в этой области, не произойдет. Технологии, кажется, сильно меняются, и вы должны быть универсальными и достаточно гибкими, чтобы чему-то научиться. Знания, которые вы приобретаете на одной платформе / API / Framework, не исчезают. Вы можете применить свои навыки к следующей лучшей платформе / API / Framework.

При этом следует перестать беспокоиться о будущем и сосредоточиться на основах. DataStructures, анализ и проектирование алгоритмов, проектирование компиляторов, проектирование операционной системы - это минимум необходимых вам вещей. И далее вы должны быть готовы вернуться и читать книги в этой области в любое время в вашей карьере. Это все, что требуется. Удачи.

Извините, если я звучал как советник с большой задницей; но это то, что я думаю. :-)

21
20.08.2008 02:20:32
rptony, Разве дизайн компилятора, дизайн операционной системы не слишком велик? Даже анализ алгоритма может стать слишком теоретическим. Я согласен с остальной частью списка ...
public static 12.09.2008 04:40:39

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

5
20.08.2008 02:12:21

Я думаю, что более важный вопрос: какие области специализации вас больше всего интересуют?

Как только вы знаете, начните учиться в этой области!

3
20.08.2008 02:14:12

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

Тем не менее, я бы посоветовал вам погрузиться в область, которую вы будете наслаждаться. Обучение стимулируется энтузиазмом .

Поскольку в настоящее время я работаю с интернет-провайдером, я нашел сетевые знания особенно полезными. Но когда-нибудь я бы хотел поиграть с 3D-графикой (не обязательно с играми).

3
20.08.2008 02:22:26

Начните как можно глубже в одной среде: win32, .net, Java, Objective C ... что угодно.

Важно построить глубокое понимание того, как работает X ... чтобы вы могли перевести те же понятия на другие языки или платформы / среды, если вы того пожелаете.

«Существуют ли области специализации, которые препятствуют вашей способности развивать другие области специализации». Вроде, но ничего постоянного, я думаю.

Так как я сам относительно зеленый (менее 4 лет), я из действительно ООП-мышления. Я редко выпрыгивал из .NET, поэтому мне было тяжело на одной работе, когда я сталкивался со встроенным кодом. Со встроенными программистами опасаются создания объектов и потери производительности наследования. Я должен был изучить окружающую среду, серьезно низкий объем памяти и медленное время, из которого они исходили. Сейчас время расти, мне было лучше, потому что я хорошо понимал свою область.

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

1
20.08.2008 08:29:15

Будучи студентом, я бы рекомендовал забыть о том, что вы программируете, и сосредоточиться на самом программном процессе. Понять, как анализировать проблему и задавать правильные вопросы; изучить все возможные шаблоны проектирования и применить их все, чтобы получить реальное понимание и оценку объектно-ориентированного дизайна; писать тесты, а затем кодировать столько, сколько вам нужно, чтобы тесты прошли. Я думаю, что лучший способ по-настоящему научиться - это просто писать как можно больше кода - язык и область не важны, ищите sourceforge и freshmeat для любых интересных проектов и принимайте участие. Важным является понимание основ разработки программного обеспечения.

И да, это включает C. Или Ассемблер. Это самый простой способ получить хорошее представление о том, как работает ваш компьютер и что на самом деле делает ваш высокоуровневый код.

Наконец, никогда не прекращайте учиться - сервис-ориентированная архитектура, инверсия управления, специфичные для предметной области языки, управление бизнес-процессами - все это дает огромные преимущества, поэтому о них важно знать - но к тому времени, когда вы закончите обучение и присоединитесь к рабочей силе, кто знает, что будет дальше?

1
20.08.2008 13:40:51