Я только что закончил свою степень бакалавра в области ИТ. Я глубоко заинтересован в кодировании и очень хочу быть профессионалом в этом. Теперь, кроме курсов в колледже, я изучаю программирование (C #) самостоятельно (программирование на уровне колледжа слишком базовое). Теперь я чувствую, что мне нужно немного больше времени, чтобы быть рядом с профессиональным программистом. Но некоторые мои старшие говорят, что программирование в корпоративном мире слишком отличается от книжного программирования, поэтому нет смысла тратить время. (Они не сами программисты, возможно, это то, что они слышали).
Могу ли я получить выгоду, достигнув уровня C #? или поскольку посредственный уровень достаточен для того, чтобы прервать собеседование, более высокие уровни не имеют значения для фирм, поскольку они полагаются на свое обучение исключительно для того, чтобы научить, как все работает в корпоративном мире, и узнать больше не поможет мне много? Пожалуйста, если есть несколько профессиональных программистов, которые могут помочь, я обещаю, что это то, о чем каждый студент, интересующийся программированием, хочет спросить на моем этапе. «Как вы на самом деле переходите от ученика к профессионалу в области программирования?» - продолжайте учиться, пока не достигнете совершенства или не вступите в фирму, если основы уже пройдены?
источник
Ответы:
Есть много различий между программированием в школе и в реальном мире. Я не уверен, что есть такая вещь, как корпоративное программирование .
В зависимости от того, где вы на самом деле работаете, будут огромные различия. Также будут огромные различия в зависимости от поставленных задач.
Однако есть еще некоторые общие проблемы.
жизненный цикл кода реального мира очень отличается от домашней работы колледжа. В программировании в реальном мире вы обычно работаете над существующей кодовой базой. Одна из самых больших проблем заключается в том, чтобы избежать нарушения совместимости с кодом, используемым вашими клиентами (которые могут быть внутренними или внешними клиентами, в зависимости от вашего фактического рабочего места и ситуации). Код, который вы пишете, также, вероятно, будет использоваться годами позже (это зависит от того, проблема не одинакова для веб-сайта или кода, встроенного в некоторые устройства). Если вы хотите подготовиться к этому, приобретите привычку писать модульные и функциональные тесты для каждого фрагмента кода. Это не всегда делается с помощью кода реального мира, но это должно упростить вашу жизнь как в колледже, так и в корпоративном мире.
дизайн / требования обычно намного более размыты в реальном мире, чем в студенческой атмосфере. При написании профессионального кода кто-то должен определить цель кода, и вам не просто дают игрушечные проблемы или даже хорошо известные проблемы. Весьма вероятно, что рано или поздно именно вы будете заниматься проектированием! Клиенты обычно не знают, чего они хотят (и даже когда они знают, что они хотят, это может быть не то, что им нужно), а менеджеры обычно просто описывают общую картину, оставляя программистам множество деталей и вариантов выбора. В зависимости от применяемых методов («agile» -vs- «V-цикл» и т. Д.), Выбор и детальное определение проблемы могут произойти рано или поздно, но вы должны, по крайней мере, быть непредубежденными и задаться вопросом, действительно ли вы делаете то, что делаете требуется. Вы также можете рассмотреть возможность изменения требований, если текущая задача слишком сложна для кодирования или неэффективна. В любом случае вы можете написать что-то бесполезное или слишком сложное, потому что клиент или ваш менеджер не получили вашу точку зрения или они не согласны с вами. Тем не менее, вы всегда должны ставить под сомнение требования (это навык выживания). Также имейте в виду, что требования могут измениться в середине задачи, и вы должны быть к этому готовы.
в колледже, когда вы получаете задание, вы обычно должны написать какой-то код. В реальном мире вы обычно начинаете с проверки, можете ли вы использовать вместо этого существующий код: повторно использовать или изменять части проекта, использовать или покупать библиотеки и т. Д. Если вы найдете существующий код, который соответствует назначению, вы можете в конечном итоге использовать его или нет (могут возникнуть проблемы с техническим обслуживанием, проблемы с производительностью, авторские права или даже проблемы с ценами), но обычно следует рассмотреть возможность повторного использования существующего кода.
Очевидно, есть много других проблем, связанных с командной работой, масштабом проекта и т. Д. Но вышеупомянутые моменты - это проблемы, которые вы, скорее всего, увидите в корпоративной среде, но не должны учитывать при выполнении заданий в колледже.
источник
Основное различие между корпоративным программированием и программированием колледжа - масштаб. В школе вы никогда не получите задание, которое один человек не может начать и закончить в течение семестра. Как профессионал, вы можете работать с десятками других программистов над программным обеспечением, которое длится годами, не будучи «законченным».
На микроуровне работа ничем не отличается. В конце концов, если бы оно было слишком другим, то высшее образование не имело бы никакой ценности для компаний. Но это похоже на разницу между выпечкой 12 куки и 12 000 куки. Вы можете быть действительно хороши в первом и совершенно невежественны в последнем.
В школе вы в основном заботитесь о создании правильной программы. На работе ваше программное обеспечение не является правильным. Он должен быть обслуживаемым, тестируемым, эффективным и способным работать одновременно несколькими людьми. Это то, чему школы пытаются научить, но вы не можете выучить это полностью, если не будете делать это.
источник
Этот вопрос основан на неверном предположении:
Вы становитесь профессионалом, получая за это деньги. Вы никогда не перестанете быть учеником. Если вы это сделаете, ваша карьера окончена.
Выйди в мир и найди работу. Ваш энтузиазм к обучению является преимуществом.
источник
Короткий ответ: да, корпоративный мир сильно отличается от окружения многих колледжей.
Тем не менее, компании знают это. Мы ожидаем, что выпускники колледжа будут почти бесполезны. Если вы потратили время на собственное обучение программированию, это здорово. Вам не нужно быть супер-крутым, чтобы подать заявку, но понимайте, что оставаться посредственным не поможет.
Вы сами многому не научитесь в бизнесе. Подайте заявку как можно скорее, продолжая учиться самостоятельно.
источник
Нет. Мы ожидаем, что студенты будут бесполезны в течение нескольких месяцев, пока мы их нарушаем. Степень - это просто ставки на стол. Ваш энтузиазм учиться и следовать инструкциям - ваш лучший актив. Когда я беру интервью у выпускников колледжа, я хочу, чтобы командный игрок не вмешивался и не мешал группе.
Это отличается для каждой компании, но в целом более крупные компании будут иметь более структурированное обучение. Это ваше первое важное решение, вам нравится формальное обучение и высокая степень структурированности? Если так, ищите работу, которая обеспечивает это.
Вы переходите от студента к профессионалу, получая работу. Я рекомендую пожилым людям получить кооператив с компанией через вашу школу. Это лучший способ намочить ноги и преодолеть беспокойство новой профессии.
Ищи работу, не жди. Обычно нервничать, но будьте честны со своими навыками и не скрывайте своего энтузиазма, чтобы узнать больше. Обычно несколько раз меняются компании, особенно в начале вашей карьеры.
Поздравляю с окончанием обучения и желаю удачи в профессиональном программировании.
источник
Я бы сказал, что фундаментальное различие между программированием на корпоративном уровне и на уровне колледжа заключается в том, что программирование на корпоративном уровне - это скорее совместный процесс, чем то, с чем вы столкнетесь в классе, и гораздо больший упор делается на разработку продукта, чем на педагогическое обучение.
источник
Если вы действительно ожидаете, что в корпоративном мире программирования будет продвинутая культура программирования высокого уровня, я думаю, вы будете разочарованы. Программирование в корпоративном мире больше связано с возможностью взять на себя ответственность за код, который вы пишете, и поддерживать его в обслуживании.
Но на ваш вопрос
Это не имеет ничего общего с программированием на корпоративном уровне и уровне колледжа, но программированием в целом. Если вы действительно хотите научиться создавать собственное программное обеспечение, то, что вы хотите создать, или начать работать в проектах с открытым исходным кодом. Задайте вопросы, с которыми вы сталкиваетесь. И читайте чужой код.
источник
Ответ Карла о масштабе - точный. Вы не можете отсортировать массив из 15 чисел, вам придется отсортировать набор данных из миллиона, скажем, номеров счетов.
Класс структур данных и алгоритмов, вероятно, расскажет вам дюжину различных способов сортировки. В реальном приложении вы, скорее всего, добавите предложение по порядку и позволите базе данных оптимизировать его.
Что касается подготовки к корпоративному миру, я бы предложил два способа: а) пройти стажировку, даже если низкооплачиваемая или неоплачиваемая, позволит вам наблюдать за работой других; б) Со всеми магазинами приложений вы можете попробовать написать и опубликовать приложение в магазинах Apple / Google / MS. Это поможет вам лучше понять рабочие процессы, ценность тестирования, необходимость настройки правильной среды и инструментов и многое другое.
источник
Главное, что нужно для успешного ведения корпоративного программирования, - это терпение и умение общаться с пользователями, которые не разбираются в технологиях. Убедитесь, что вы используете модульное тестирование, контроль версий, тщательно отлаживаете и используете правильную трассировку / регистрацию Языки могут измениться, но спокойствие и тщательный поиск проблем всегда будут работать.
источник
Помимо превосходного ответа, «корпоративное программирование» также касается требований, которые не ясны или не изменены.
Что бы вы сделали, если ваш профессор изменил требования к вашей домашней задаче по программированию за два дня до того, как вы должны ее выполнить?
В промышленности это довольно распространенное явление.
источник