Подтвердить что ты не робот

Необходима специализация в разработке программного обеспечения

Я окончил свой университет почти год назад. С тех пор я работал со многими различными технологиями, такими как PHP, JQuery, ASP.NET, С# и т.д. Недавно я переключился на компанию, в которой powerbuilder используется для разработки.

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

Мой вопрос: нормально ли мне работать над разными технологиями, не осваивая один из них?

4b9b3361

Ответ 1

Если вы решите специализироваться на том, что получаете альтернативные издержки, сделав себя недоступным для других видов работы. Это хорошо, если вы можете быть уверены, что выбранная вами специализация будет длиться в течение разумного периода времени. Однако вы можете гарантировать (вместе со смертью и налогами), что программное обеспечение изменится. Вы всегда будете обязаны изучать новые рамки или подход, чтобы оставаться в силе.

Итак, чтобы не оказаться в интеллектуальном тупике (транспьютеры все еще используются где-нибудь?), вы должны принять учение о постоянном обучении. Обучение обычно забавно и почти всегда приводит к радости от открытия какого-либо нового инструмента или дизайна. И никогда не держите это знание самостоятельно (он имеет период полураспада 18 месяцев в любом случае). Поделитесь тем, что вы узнали с другими.

Итак, чтобы ответить на ваш вопрос: не специализируйтесь.

Ответ 2

Согласно книге Pragmatic Programmer, один из советов для хорошего программиста:

Invest Regularly in Your Knowledge Portfolio
Make learning a habit.

Это означает, что вам постоянно приходится использовать новые технологии или узнавать о них. Хотя стать мастером в одной конкретной технологии может быть полезным, технологии приходят и уходят, сегодня быстрее, чем когда-либо. Мастерство в одном конкретном языке программирования, инструменте или API может сделать вас гуру сегодня, но завтра ничего не может означать.

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

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

Ответ 3

Нет никакого "правильного ответа" на этот вопрос, кроме, может быть, "это зависит".

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

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

Однако, более того, вы должны смотреть на то, чтобы заинтересовать вас в течение длительного периода времени. Это реальный ключ. Если у вас есть интерес, вы продолжите учиться и приобретать опыт. Возможно, это будет означать, что вы делаете то, что не особенно актуально для большинства заданий, например, для написания компилятора языка. Или, может быть, вы обнаружите, что спешка работы с крупными клиентами по крупным проектам важнее, чем конкретный язык/рамки.

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

Ответ 4

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

Идея заключается в том, что когда вы специализируетесь на языке, вы узнаете много концепций, которые вы можете переносить на разные языки/платформы. например: мастер языка может справиться с другим с относительной легкостью.

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

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