В чем разница между уровнем колледжа и корпоративным программированием? [закрыто]

28

Я только что закончил свою степень бакалавра в области ИТ. Я глубоко заинтересован в кодировании и очень хочу быть профессионалом в этом. Теперь, кроме курсов в колледже, я изучаю программирование (C #) самостоятельно (программирование на уровне колледжа слишком базовое). Теперь я чувствую, что мне нужно немного больше времени, чтобы быть рядом с профессиональным программистом. Но некоторые мои старшие говорят, что программирование в корпоративном мире слишком отличается от книжного программирования, поэтому нет смысла тратить время. (Они не сами программисты, возможно, это то, что они слышали).

Могу ли я получить выгоду, достигнув уровня C #? или поскольку посредственный уровень достаточен для того, чтобы прервать собеседование, более высокие уровни не имеют значения для фирм, поскольку они полагаются на свое обучение исключительно для того, чтобы научить, как все работает в корпоративном мире, и узнать больше не поможет мне много? Пожалуйста, если есть несколько профессиональных программистов, которые могут помочь, я обещаю, что это то, о чем каждый студент, интересующийся программированием, хочет спросить на моем этапе. «Как вы на самом деле переходите от ученика к профессионалу в области программирования?» - продолжайте учиться, пока не достигнете совершенства или не вступите в фирму, если основы уже пройдены?

vish213
источник
24
Школа никогда не была направлена ​​на то, чтобы дать вам необходимые навыки, чтобы найти работу. Речь идет о предоставлении вам необходимых инструментов для поиска работы. Ничто не заменит реального опыта, но вам все еще нужна школа.
Роберт Харви
5
Я думаю, что заголовок представляет собой полезный вопрос, но основная часть вопроса - совет по поводу карьеры, который не по теме на этом сайте.
Брайан Оукли
Вы можете найти канал чата для программистов. SE (доска), чтобы быть полезным местом, чтобы задавать такие вопросы - там часто есть люди с широким спектром навыков из корпоративного мира.
3
На удерживании??? Это НЕ просит совета по карьере. Да, этот вопрос мало о обсуждении, но отвечает. Есть так много хороших ответов на этот вопрос, никоим образом этот вопрос нельзя удалить или что-то еще, если только в stackexchange не заканчивается память. Смотрите принятые ответы. Это дает какой-то профессиональный совет ??
vish213

Ответы:

32

Есть много различий между программированием в школе и в реальном мире. Я не уверен, что есть такая вещь, как корпоративное программирование .

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

Однако есть еще некоторые общие проблемы.

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

  • дизайн / требования обычно намного более размыты в реальном мире, чем в студенческой атмосфере. При написании профессионального кода кто-то должен определить цель кода, и вам не просто дают игрушечные проблемы или даже хорошо известные проблемы. Весьма вероятно, что рано или поздно именно вы будете заниматься проектированием! Клиенты обычно не знают, чего они хотят (и даже когда они знают, что они хотят, это может быть не то, что им нужно), а менеджеры обычно просто описывают общую картину, оставляя программистам множество деталей и вариантов выбора. В зависимости от применяемых методов («agile» -vs- «V-цикл» и т. Д.), Выбор и детальное определение проблемы могут произойти рано или поздно, но вы должны, по крайней мере, быть непредубежденными и задаться вопросом, действительно ли вы делаете то, что делаете требуется. Вы также можете рассмотреть возможность изменения требований, если текущая задача слишком сложна для кодирования или неэффективна. В любом случае вы можете написать что-то бесполезное или слишком сложное, потому что клиент или ваш менеджер не получили вашу точку зрения или они не согласны с вами. Тем не менее, вы всегда должны ставить под сомнение требования (это навык выживания). Также имейте в виду, что требования могут измениться в середине задачи, и вы должны быть к этому готовы.

  • в колледже, когда вы получаете задание, вы обычно должны написать какой-то код. В реальном мире вы обычно начинаете с проверки, можете ли вы использовать вместо этого существующий код: повторно использовать или изменять части проекта, использовать или покупать библиотеки и т. Д. Если вы найдете существующий код, который соответствует назначению, вы можете в конечном итоге использовать его или нет (могут возникнуть проблемы с техническим обслуживанием, проблемы с производительностью, авторские права или даже проблемы с ценами), но обычно следует рассмотреть возможность повторного использования существующего кода.

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

Kriss
источник
Под корпоративным программированием я понимал среду программирования в компаниях. Хороший ответ, кстати :-)
vish213
3
Хороший ответ @kriss. Я бы добавил, что важно научиться говорить на языке клиента, а не на «программистском». Это поможет и вашему клиенту, и вам.
Пэдди Ландау
38

Основное различие между корпоративным программированием и программированием колледжа - масштаб. В школе вы никогда не получите задание, которое один человек не может начать и закончить в течение семестра. Как профессионал, вы можете работать с десятками других программистов над программным обеспечением, которое длится годами, не будучи «законченным».

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

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

Карл Билефельдт
источник
По моему опыту, большая часть «корпоративного кода» не стремится к тому, чтобы его можно было обслуживать, тестировать и эффективно, но достаточно хорош, чтобы решить проблему за короткое время. Во многих случаях код даже не «правильный», а только «достаточно правильный».
Симон
26

Этот вопрос основан на неверном предположении:

«Как вы на самом деле переходите от ученика к профессионалу в области программирования?»

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

Выйди в мир и найди работу. Ваш энтузиазм к обучению является преимуществом.

Стивен А. Лоу
источник
4
Это хороший совет, но он не отвечает на вопрос, не так ли?
Брайан Оукли
6
Я согласен с тем, что профессиональный программист никогда не перестает быть учеником, но не то, что вам платят, делает вас профессионалом. Я встречал много любителей, которым платили за то, что они написали ужасный ужасный код. Профессионал - это правильное выполнение работы - и правильное выполнение работы, а не плата за то, чтобы производить код.
Беван
@Bevan Можно также утверждать, что в этом разница между «программистом» и «разработчиком». Не уверен, где я стою на этом, все же.
Изката
3
@Bevan: слово «профессионал» действительно неоднозначно; Чувства, перечисленные в записи Викисловаря, включают как «От, относящиеся, или в соответствии с (обычно высокими) стандартами профессии», так и «Это осуществляется за деньги, особенно как средство к существованию». Оплата автоматически делает вас профессиональным программистом в последнем смысле, даже если он ничего не говорит о первом.
Руах
12

Короткий ответ: да, корпоративный мир сильно отличается от окружения многих колледжей.

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

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

Telastyn
источник
4

Могу ли я получить выгоду, достигнув уровня C #?

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

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

Это отличается для каждой компании, но в целом более крупные компании будут иметь более структурированное обучение. Это ваше первое важное решение, вам нравится формальное обучение и высокая степень структурированности? Если так, ищите работу, которая обеспечивает это.

Как вы на самом деле переходите от ученика к профессионалу в области программирования?

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

Продолжайте учиться, пока не достигнете совершенства или не вступите в фирму, если основы уже пройдут?

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

Поздравляю с окончанием обучения и желаю удачи в профессиональном программировании.

Экстрасенсорный порыв
источник
1

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

Марк
источник
1

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

Но на ваш вопрос

Как вы на самом деле переходите от ученика к профессионалу в области программирования?

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

minusSeven
источник
1

Ответ Карла о масштабе - точный. Вы не можете отсортировать массив из 15 чисел, вам придется отсортировать набор данных из миллиона, скажем, номеров счетов.

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

Что касается подготовки к корпоративному миру, я бы предложил два способа: а) пройти стажировку, даже если низкооплачиваемая или неоплачиваемая, позволит вам наблюдать за работой других; б) Со всеми магазинами приложений вы можете попробовать написать и опубликовать приложение в магазинах Apple / Google / MS. Это поможет вам лучше понять рабочие процессы, ценность тестирования, необходимость настройки правильной среды и инструментов и многое другое.

SidJ
источник
1
Просто хотел добавить в дополнение к магазину приложений, вы можете попробовать волонтерство для небольшого проекта. Моим первым заданием было помогать моей маме на работе придумывать отчеты об отпуске и сверхурочных :)
SidJ
0

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

Тим Спанн
источник
-1

Помимо превосходного ответа, «корпоративное программирование» также касается требований, которые не ясны или не изменены.

Что бы вы сделали, если ваш профессор изменил требования к вашей домашней задаче по программированию за два дня до того, как вы должны ее выполнить?

В промышленности это довольно распространенное явление.

k3b
источник