Отказ от ответственности (Пожалуйста, прочитайте, прежде чем прыгать, чтобы ответить):
Я видел несколько вопросов, похожих на тот, который я хотел бы задать, поэтому вот несколько похожих вопросов.
ИМХО Они не совсем то, что я спрашиваю, и они не настолько тщательны, как я надеюсь (я не хочу отмахиваться от ответов на вопросы ниже, и я не дискредитирую спрашивающих, я просто хочу быть немного более тщательно)
Может ли степень CS помочь старшему программисту?
Важность степени CS при подаче заявки на рабочие места развития?
Позвольте мне быть ясным, я не спрашиваю следующее:
- Как научить себя программированию с нуля (без степени в CS)
- Как позиционировать себя как хорошего разработчика программного обеспечения (без степени в CS)
- Как получить отличную высокооплачиваемую работу в качестве разработчика программного обеспечения (без степени в CS)
Немного контекста:
Теперь, когда я отказался от ответственности, позвольте мне конкретизировать мой вопрос, начиная с краткой истории моего опыта в качестве разработчика программного обеспечения.
Прежде всего, мне невероятно повезло. Мне дали несколько рабочих мест (несколько тяжелых бэкэнд-проектов PHP / MySQL и несколько приложений WP7 в XAML / C #), благодаря которым я действительно узнал все, что знаю о разработке программного обеспечения. Почти все работы по разработке программного обеспечения, которые у меня были, были такими, на которые я не был по праву квалифицирован (и я дал это понять своим работодателям до того, как они меня наняли). Я не хочу отдавать себе должное, когда этого не происходит, но я бы сказал, что совершенное смирение обходится без скромности .
Почти в каждой моей работе по развитию я превзошел ожидания моего работодателя и оказался ценным активом. Есть, конечно, исключения 1 . Но я хочу сказать, что я достаточно умен и смог научить себя тому, что мне нужно было знать, чтобы добиться успеха на своей работе. С каждой работой я растягивался все больше и больше.
Я посещаю кампус Сиэтлского университета в Вашингтоне , и в настоящее время я учусь на четвертом курсе, у меня осталось два года, и я работаю над математикой. Во время различных работ, которые у меня были (см. Мое резюме, если вы хотите этот список), я также посещал школу в качестве очного студента.
Как я думаю, большинство разработчиков согласятся с этим, изучая типичные курсы общего образования для студентов, в том числе вводные курсы по программированию. АБСОЛЮТНО ПАЛЕСЫ по сравнению с написанием реального кода, созданием реальных 2 продуктов, работой с замечательными людьми и положительным влиянием на жизнь пользователей 3 .
Так что ... по ходу дела ... я тратил гораздо больше своего времени и энергии на работу вместо того, чтобы сосредоточиться на учебе. Иногда я выступал очень ужасно , но по большей части мне удавалось оставаться на плаву со своими оценками.
Однако программа информатики в UW очень , очень , очень , очень конкурентоспособна.
Таким образом, для меня не было неожиданностью, когда я был отклонен программой. Дважды. По иронии судьбы, в то же самое получасовое окно, в котором я получал по электронной почте всегда вежливое, хотя и удручающее уведомление об отказе, мне позвонил Amazon, предложив мне летнюю стажировку 4 в качестве SDE.
Когда я смотрю на других мужчин моего возраста (21), которые преследуют те же цели, что и я в разработке программного обеспечения, я чувствую себя довольно хорошо о том, где я нахожусь, что я изучаю, кто я и что Я могу сделать. Конечно, есть намного, намного, намного более блестящие 21-летние подростки, чем я, я не хочу сказать, что я выделяюсь из толпы, просто я чувствую, что я не ужасно отстаю от прогресса моего среднего сверстника ,
Я уверен в своей способности быть успешным в мире программного обеспечения. Что еще более важно, я уверен в своих способностях и желании продолжать расти, учиться и смущаться, когда мне это действительно нужно.
Математическая степень
Я стремлюсь получить степень по математике с единственной целью получить степень. Есть те, которые говорят, что я должен бросить и начать работать сейчас (как я имел возможность сделать), и есть те, которые говорят, что я действительно должен закончить свою степень. Я решил продолжить обучение по совершенно разным причинам, чем те, что есть в лагере, поэтому, пожалуйста, не поощряйте меня так или иначе в этом вопросе. Считайте вопрос "закрытым" :)
* ГЛУБОКОЕ ДЫХАНИЕ * ... извините, это дольше, чем я ожидал.
По сути, это мой вопрос:
- Как мне объективно определить, какие области обучения, общие знания и другие навыки, которые я получил бы в результате получения степени CS, мне могут или не могут быть необходимы сейчас?
Как мне отсортировать эти навыки в порядке важности?
Каков наилучший способ (в течение следующих двух лет) дополнить мое образование, чтобы получить эти качества таким образом, чтобы соответствовать или даже превосходить уровень бакалавриата высшего образования высшего учебного заведения?
Вот шаги, которые я уже предпринимаю:
- Задайте вопрос сообществу разработчиков (этот пост)
- Проводить наставничества с опытными разработчиками, которые разделяют со мной схожую карьеру
- Определите краткосрочные и долгосрочные «учебные» цели и последующие учебные программы с изложением тем обучения
- Продолжайте писать код и работайте над проектами, которые мне нравятся
Если вы зашли так далеко, вы заслуживаете печенье :) Я ценю, что вы терпите меня.
Итак ... сообщество разработчиков, опытные разработчики, сокурсники, которые находятся в одной лодке со мной, что бы вы посоветовали?
Также ... пожалуйста, имейте в виду мои отказы от ответственности в верхней части этого поста о том, что я НЕ прошу.
Обновить:
Я понимаю, что я не предоставил очень конкретные параметры для того, что я считаю успешным «ответом» на мой вопрос (ы). Я думаю, что вопрос очень расплывчатый и может потребовать ряда «правильных» ответов.
Через некоторое время я выберу ответ, который соответствует следующим атрибутам:
- Объясняет причину их ответа
- Может говорить с определенного уровня опыта (будь то найм / взаимодействие с кем-либо или кто-то, кто находится / на моем месте)
- Краткий, но тщательный, дает широкие принципы, желательно в сочетании с конкретными примерами
- И, наконец, учитывая длину, которая может потребоваться для соответствия вышеприведенному, пожалуйста, сделайте хороший, хорошо обдуманный ответ, который приятно читать. Другие, которые могут быть заинтересованы в этом в будущем, я надеюсь, будут развлечены ответом.
Так что есть некоторые параметры для «правильного». Я думаю, они очень высокие, но я разработал их как набросок того, что, как я предполагаю, будет «лучшим» ответом. Очевидно, что при наличии достаточного количества времени я выберу ближайший соответствующий ответ в качестве «ответа».
(1) - я работал над предыдущей версией этого сайта, и пока у нас не было явного Разговор об этом, я чувствовал, что я не был в состоянии сделать очень хорошо (это может быть о чем свидетельствует тот факт, что с тех пор они полностью изменили свой сайт) (2) - Во-первых, да, это реальный продукт (хотя я пишу этот пост в Chrome ...), и это пинает задницу Во-вторых, я был старшеклассником-разработчиком в тесте, написал доказательство концептуальный код для некоторых новых функций для IE8 ... так было некоторое время назад. (3) - На момент публикации я являюсь разработчиком, который написал это приложение, я больше не являюсь ответственность за его кодовую базу (4) - моя стажировка начнется в июне 2012 года, и я буду работать в интернет-магазине команда.
Ответы:
Хорошо, я нахожу слишком заманчивым не отвечать на ваш вопрос, так что вот я ...
Сначала обо мне
Мне 26 лет , и благодаря моему отцу (кстати, математику и в настоящее время работаю профессором) у меня был шанс с самого раннего этапа моей жизни быть за компьютером. (в 1986 году, когда я родился, хотя в те дни это было не самым обычным делом, у нас дома всегда был один или два компьютера). Это, как говорится, и - очевидно, из-за моего любопытного и склонного к математике / ориентированного на решение проблем характера - это было незадолго до того, как я влюбился в программирование. Сначала с Паскалем, в возрасте 7-8 лет, а потом почти все остальное.
Во-первых, позвольте мне сказать, что, находясь в школе, я всегда преуспевал во всем, что связано с математикой, просто потому, что мне это нравилось, и, честно говоря, я мог легко последовать примеру своего отца и тоже стать математиком. Но этого не произошло.
То, что произошло, было, вероятно, самой большой ошибкой в моей жизни (на данный момент): как бы вы это назвали, когда кто-то влюблен в код , говорит на 15+ языках и написал тысячи строк кода (от компиляторов до микроядер и веб-приложений) рамки) к 18 годам, внезапно (причины все еще слишком неясны, на мой взгляд, но общее, даже если неуловимое, влияние вашего окружения никогда не бывает слишком незначительным) решает продолжить карьеру в медицине ? Я предполагаю "ошибку".
Результат? Спустя 5 лет (в 23 года) и за 1 год до получения степени доктора медицинских наук (все еще работая хобби в личных проектах с открытым исходным кодом), я решил, что с меня хватит, и решил бросить. И не только то, что я так сильно ненавидел это новое поле (медицину), но и то, что во всей этой ситуации было что-то тревожное, ненасытный зуд, спрятанный глубоко внутри ... ( что бы это было, если ...? ) Более того, я только что понял, что мое хобби , которое я считал отличным, но даже не представлял себе настоящую работу, могло не только принести немного денег, но и принести мне их много + держать меня счастливым как личность. Итак, я решил бросить. (= лучший выбор, даже если я немного опоздал, я когда-либо делал).
Итак, вот я сейчас, когда-то будущий врач (психиатр на грани нервного срыва, если быть точным; глупый я!), Идущий на степень CS (на самом деле, на моем 3-м курсе; и, честно говоря, стремиться к этому, чтобы в итоге не испытать недостатка в этих ужасных типичных квалификациях ...) и более чем счастливого профессионала, работающего над чем-то, что я обожаю, и определенно над темой, по которой я могу предложить больше всего.
Несколько наблюдений (из собственного опыта)
Программирование - одна из немногих областей, где действительно хорошие всегда найдут путь, несмотря ни на что. И это, безусловно, НЕ вопрос типичных квалификаций (если честно, если бы у меня была компания и я хотел нанять программистов, я могу легко определить, кто хорош в считанные минуты - независимо от того, имеет ли он степень или нет)
Чтобы стать хорошим программистом, нужно: математический интеллект (но НЕ саму математику) и страсть (что сделает бесконечные часы изучения удовольствием, а не бременем), и, даже если я этого не осознаю, доверие я изучил тонны материала на эту тему в своей жизни, исключительно на своей собственной) . Формальное образование - это хорошо, но немного переоценено. Основными составляющими успеха являются первые два.
Математика, безусловно, где CS родился. Но CS больше не просто математика. У меня всегда был сильный математически ориентированный мозг, но я ни в коем случае не математический гуру. И, честно говоря, в повседневном программировании (если только вы не занимаетесь созданием графического движка или чего-то слишком локализованного), вам, скорее всего, никогда не понадобится ничего, кроме простой арифметики (сложение, вычитание, умножение, деление, по модулю) и нескольких вещей. о массивах. (многие со мной не согласятся, возможно, математики или слишком академически ориентированные программисты, но, безусловно, овладение исчислением - это НЕ то, что нужно, чтобы стать хорошим программистом). Наличие хорошего математического фона может вам помочь, но НЕ из-за самой математики; это поможет вам исключительно на основе одной общей вещи, которую разделяют эти две области: навыки решения проблем.
Математика - это наука (и наука, которую я уважаю).
Программирование это искусство. (И прикладная наука, если вы настаиваете). Но имейте это в виду: искусство - и я всегда так к нему относился. И как со всеми искусствами, этому нельзя научить. Я могу научить вас формальному способу рисования лица и сделать вас лучше, чем обычно, но это не сделает вас ни да Винчи, ни Климтом. Мона Лисас написана Да Винчи, а не тщательно образованными художниками. Отличный код написан великими художниками кода. А умение и преданность могут легко перевесить формальное образование.
Итак, что нужно, чтобы стать действительно хорошим программистом?
На ваши вопросы
Хотя я должен был бы по-настоящему знать, что входит в степень по математике, позвольте мне подвести итог того, что вы, скорее всего, упустите из степени CS (как курсы / предметы / и т. Д. - вдохновленные программой обучения моего университета ) в произвольном порядке. :
Знание того, что нужно расставлять приоритеты в постоянно меняющейся области, поскольку CS всегда будет азартной игрой - игрой в догадки .
Узнайте, что вы хотите сделать, и доверьтесь своему инстинкту. Конечно, наличие твердых базовых знаний является обязательным. Но во что вы будете вникать, это полностью зависит от вас. Кроме того, тщательно спланируйте свою карьеру: если вы хотите работать, выберите свою цель и преуспейте в ней (например, желание работать в Google и не знать, как читать простой скрипт на Python, вероятно, одна из тех ситуаций, когда вы не работаете) ) . Если вы начинаете что-то самостоятельно (компанию), то у вас нет «начальника», чтобы удовлетворить; просто выберите то, что подходит вам больше всего.
Например, если вы хотите сделать что-то связанное с Интернетом, я бы определенно посоветовал вам перейти на: PHP / MySQL / HTML / CSS / JavaScript (+ jQuery / AJAX) . Но это только я. Кому-то может понравиться (или увидеть в будущем больше) Ruby / Rails, чем в PHP.
Я, например, сейчас в основном кодирую в Objective-C / Cocoa . Я бы посоветовал вам заняться этим? Точно нет. То есть: если вы не любите Mac или не хотите делать карьеру, продавая программное обеспечение для Mac / iPhone. Если вы занимаетесь разработкой для Windows, переход на C # / .NET Framework , вероятно, будет вашим лучшим выбором. (если вы хотите получить представление о том, чем я в основном занимаюсь, просто загляните в мой профиль StackOverflow )
Много изучайте (книги, интернет, чужой код и т. Д.) И пишите как можно больше кода.
Ах, и попробуйте найти работу во всем, что связано с кодом. (Я впервые начал работать фрилансером, и это был действительно ценный опыт, просто чтобы посмотреть, как все работает в реальном мире).
Просто мои .2 дружелюбных цента ... :-)
Sidenote: Я знаю, что некоторые из моих пунктов могут показаться противоречивыми, и я уверен, что многие будут не соглашаться со мной. Это приемлемо Но это не меняет того, как я вижу вещи - и особенно то, что я люблю.
источник
Просмотрите учебный план отдела CS в UW, позаимствуйте и просмотрите все необходимые материалы, посмотрите предыдущие экзамены и лабораторные упражнения (домашние задания). Если вы не знаете, как вы решите проблему, у вас есть дыра в ваших знаниях.
Подумайте о том, какое программирование вы хотели бы делать в будущем. Если вы довольны созданием веб-сайтов и приложений CRUD, похоже, у вас уже есть все необходимые знания.
Обучение CS входит в картину, если вы заинтересованы в понимании того, как [распределенные] базы данных, веб-серверы, компиляторы и интерпретаторы, операционные системы, сетевые протоколы и т. Д. Работают под капотом , и заинтересованы в создании таких систем самостоятельно.
Я не знаю. Для меня наибольшая выгода от университета состояла в том, чтобы: 1) расширить свой кругозор (я забыл 90% деталей, которые я узнал в универе, но я помню концепции и идеи), и 2) сохранить свою внутреннюю мотивацию для изучения материала от ослабевание: легче поддерживать мотивацию, когда вы работаете над достижением цели - экзаменом, другим экзаменом и т. д., пока не закончите обучение. (Кроме того, структурирование самообразования - непростая задача.)
[Добавлено: выберите университет, по программе CS которого вы хотели бы следовать, выберите курсы по темам, которые вас интересуют, и пройдите учебный план самостоятельно: домашние задания, экзамены и т. Д. Большинство курсов публикуют слайды лекций и задания / экзамены предыдущих лет. .]
Однако совет: НЕ бросайте свою степень по математике. Любой умный человек может научить себя программировать, но математика даст вам конкурентное преимущество, если вы когда-нибудь захотите работать с приложениями, отличными от CRUD / frontend, например, с помощью жидкостных и механических симуляций, компьютерной графики, обработки изображений, распознавания и машинного обучения, (даже финансы!) и т. д.
ОБНОВЛЕНИЕ 2 - опыт работы [долго]: я получил степень магистра на факультете ЭЭ: первые два года были общей учебной программой (физика, электротехника, аналоговая и цифровая электроника, и много математики - линейная алгебра; дискретная математика; реальная, векторная и сложный прикладной анализ.) Это было очень ценно, особенно ЭЭ и электроника - это позволило мне работать над смешанными проектами HW-SW, и сотрудничество с дизайнерами HW было очень захватывающим. Я ничего не внес в дизайн HW, но я смог проследить, как разработчик HW «отладил» его принципиальную схему и задал разумные вопросы [мы не были уверены, была ли ошибка в SW или HW - оказалось, что это было в HW: -)].
Затем линии разветвляются, и я выбираю линию CS. Некоторые из «деталей» способствовали внедрению концепций (например, «запуск» алгоритма Дейкстры вручную). Также я узнал подробности о том, как работают процессоры (сигналы шины, интерпретация шинных диаграмм, выполнение и т. Д.) На примере уже тогда устаревшей Motorola 68000, но концепции, изученные через детали, также не сильно отличаются для современных процессоров.
Другие детали, особенно Реализация SW (например, реализация Dijkstra) была для меня [поскольку я хорошо освоил кодирование в старшей школе] бессмысленным упражнением в отладке и внесла ZERO в понимание концепций.
А потом я поступил в аспирантуру, где должен был пройти обязательные курсы. Я был разочарован выбором курсов, так как многие из них, казалось, были в большей степени ориентированы на требования отрасли (например, используя Python для анализа научных данных - спасибо, я могу программировать, и я очень способен научить себя этому - - что опять-таки связано с большим количеством бессмысленного кодирования), чем для обучения фундаментальным концепциям (к счастью, я выкопал курсы по дискретной оптимизации, статическому анализу программ и формальному анализу с помощью Promela).
Итак, некоторые детали были полезны для укоренившихся концепций, а некоторые были просто ненужным бременем (другой пример: программирование связи через последовательный порт между двумя компьютерами. Я уже тогда привык к чтению и интерпретации спецификаций HW и программированию HW через регистры, так что это было просто. Скучно. Может быть, я наивен, предполагая, что средним, ставшим CS-инженерам не нужно учиться читать HW-документы).
В заключение: познакомьтесь с множеством различных концепций (идей высокого уровня) и подробно опишите те, которые вы хотите расставить по приоритетам и станете чрезвычайно хорошими. [Вы не можете быть чрезвычайно хороши во всем!]
источник
Я беру интервью и участвую в наборе многих молодых людей, только что закончивших колледж. Я еще не нанял никого, основываясь на предметных навыках, которые они приобрели в зависимости от программы, которую они взяли. Причина этого проста: ни одна программа CS (или любая другая программа), с которой я сталкивался, не учит каким-либо конкретным навыкам, связанным с программированием или разработкой программного обеспечения, на профессиональном, коммерческом уровне. Возможность выработки моделей и решений сложных дифференциальных уравнений и написание оптимизированных специальных алгоритмов сортировки может иметь академическую и / или научную ценность, но не имеет отношения к общей разработке программного обеспечения.
Что я тогда ищу? Ну, я ожидаю, что выпускник колледжа усовершенствовал искусство обучения. В конце концов, то, что должен преподавать хороший колледж, это студенты. Как анализировать и разбивать общие проблемы на логические, дискретные компоненты, которые предсказуемо разрешимы. Методический подход к поиску, оценке, организации и применению знаний и информации для решения.
Кроме того, я ищу людей, которые понимают, что группа людей, работающих вместе и общающихся, стоит гораздо больше, чем сумма ее отдельных лиц. Это требует зрелости и смирения, а также способности давать и просить о помощи.
Итак, вернемся к содержанию вашего вопроса: хотя степень CS может повысить ваши шансы получить первое собеседование после окончания колледжа, я считаю, что это практически не влияет на ваш успех или профессионализм разработчика. Я всегда следовал философии «найми для отношения, тренируйся для мастерства», и это хорошо окупается.
Мой совет: продолжайте обучение по математике, если вас это интересует. Любое научное образование обеспечит вам хорошую поддержку, поэтому выберите тот, который вам больше всего нравится, так как он наиболее вероятен в вашей работе. Затем сосредоточьтесь на изучении важных вещей: как учиться, как анализировать и подходить к решению проблем в структурированный способ, как взаимодействовать и сотрудничать с другими людьми, как взять на себя лидерство и ответственность как за себя, так и за товарищей по команде. Все остальное - просто технология и кодирование, инструменты торговли. Те, вы можете и будете учиться самостоятельно. Соберите и изучите некоторые знания общего назначения, такие как популярные шаблоны проектирования и архитектурные парадигмы. Начните писать программы для практики. Выберите какую-то языковую и технологическую базу, которая достаточно актуальна, но не думайте, что это ошибочно » последний, который вы узнаете. Инструменты и языки постоянно меняются, поэтому разработка программного обеспечения в любом случае является постоянным процессом обучения.
источник
Ответ 1
Если вы узнаете что-то новое из своего исследования. Тогда вы можете объективно сказать, что вы получили это через степень CS.
A1. Почему
Концептуальная степень CS - это обучение. Если кто-то возвращается из степени CS без чистой разницы, то его основная цель не выполняется. Экзамены и курсовые работы являются «официальной» мерой того, что было изучено. Тем не менее, индивидуальное понимание (я узнал что-нибудь новое?) Должно быть лучшей объективной мерой.
A1. Опыт
Я был в академии, а теперь работаю профессионально. Я выбрал степень магистра в области компьютерных наук, потому что я хотел расширить свое понимание, и у меня есть страсть к обучению.
Мой мир расширился в результате получения мастеров в области вычислительной техники. Мой мир также расширился от профессиональной деятельности.
Ответ 2
Значение относительно того, кто задает вопрос и для какой ситуации. Если это для личного роста , то все это важно. Если это для промышленности, то важны такие вещи, как алгоритмы и хорошая практика ООП / стандартного программного обеспечения.
A2. Почему
«Сфера» важности сильно зависит от «контекста». Без контекста достоинства навыков трудно разобрать.
A2. Опыт
Я обнаружил, что навыки, полученные в «университете» и «на местах», отличаются. «Навыки» в университете - это больше «теория», а в промышленности - больше «практика». По этой причине это различие означает, что навыки действительно ранжируются по-разному с точки зрения важности.
Ответ 3
Напрягите себя за нарушение точки, и когда вы перерыв держать прорываясь себя.
Что я имею в виду?
Если вы попадаете в точку, в которой вы не понимаете, тогда вы сломались. Продолжайте учиться, пока не поймете. Затем нажимайте дальше, пока не найдете что-то еще, что вы не понимаете (до бесконечности) .
A3. Почему
Если ты только учишься и остаешься в пределах своих границ, ты будешь только в порядке. Вы не хотите быть просто "хорошо". Ты хочешь быть "лучшим", каким ты можешь быть. Вы не сможете раскрыть свой реальный потенциал, если вы НЕ ПОСТОЯННО продвигаетесь за пределы своей границы.
A3. Опыт
Я всегда буду студентом на всю жизнь, я не буду перечислять мой текущий набор навыков, если вам интересно, вы можете просто посмотреть мой профиль.
Я скажу только одно. Я никогда не доволен своими текущими знаниями. Я хочу летать выше, видеть дальше и идти глубже.
источник
Просто посмотрите на требования к степени, а затем посмотрите учебный план для каждого класса.
Вы не можете сделать это самостоятельно без помощи задним числом. Я бы сказал, что самой важной вещью, которой не хватает большинству программистов-самоучек, является анализ алгоритмов и разработка. Остальное можно подобрать штучным блюдом.
Даже если вы не допущены к программе, вы часто можете посещать занятия в других факультетах по выбору. Одним из моих любимых занятий был урок по аэрокосмической технике, где я работал над электроникой и прошивкой для небольшого спутника.
Вы также можете приобрести учебник, который использует ваш желаемый класс. Я сделал это для пары классов, которые я не мог вписаться в мое расписание. Другим вариантом является MIT открытое учебное программное обеспечение .
источник
Почему вы думаете, что степень CS так важна, чтобы быть успешным программистом ?
Для того, чтобы стать успешным программистом, вам нужно:
Обычно степень CS дает вам возможность работать в отрасли, но если у вас нет страсти и жажды знаний, вы будете страдать и никогда не станете хорошим программистом.
Похоже, вы уже попали в индустрию, и, безусловно, у вас есть страсть и жажда знаний.
Что вы должны знать, так это продолжать исследовать, изучать и приобретать опыт, и отрасль будет знать, как ценить вас без степени.
Пример От кого-то, с кем я работаю
одна из разработчиков программного обеспечения, работающая в моей команде, имеет юридическое образование ... через несколько лет она поняла, что ей вообще не нравится закон, и что она хочет быть программистом. она не могла получить работу программиста (без опыта, без степени), поэтому она прошла 6-месячный компьютерный курс, затем она получила работу, и с тех пор она является отличным разработчиком.
источник
ИМХО, нет никаких заданий по программированию (или продаж, или сисадминов и т. Д.), Есть только задания по решению проблем. Мы нанимаем и платим людям за решение проблем, написание кода - это только часть решения проблемы. Да, даже продажи - это форма решения проблем. Таким образом, математическая степень доказывает, что вы можете решать проблемы, а также степень CS.
Из вашей публикации ясно, что вы получаете большой опыт / стажировки. Большой! не беспокойтесь о получении работы после окончания учебы.
Чтобы попытаться ответить на ваши вопросы:
классы? выберите некоторые теоретические классы CS, а не классы написания кода. Найти некоторые не CS / математические классы, например. философия это поможет вам выделиться из толпы
приоритеты? изучать новые вещи (не просто легкие уроки, которые вы уже знаете наполовину)
следующие два года? разговаривать с людьми, учиться, строить отношения, искать внешнюю деятельность. (Хобби / спорт / времяпрепровождение вне работы / учебы - это один из способов понять, насколько мотивирован заявитель.)
Заключительные советы: Выпускник, как только вы можете. Построить сеть контактов. И единственная надежная работа - это создание собственной работы. Ищите идеи / возможности, где вы можете начать свой собственный бизнес. Удачи.
источник
Во-первых, позвольте мне сказать, что я очень рад, что вы задали этот вопрос, потому что я задавал себе этот вопрос годами.
Я думаю, что пока могу считать себя немного успешным в этой области. У меня есть некоторый опыт работы в колледже, и я хотел бы в конечном итоге закончить свое высшее образование в области компьютерных наук, но я еще не получил степень в данный момент в моей жизни. У меня, однако, был довольно большой успех в разработке программного обеспечения, несмотря на этот недостаток (продолжающийся 10 лет). Я должен быть честным с вами, хотя это не обязательно было легко сделать (конечно, я бы поспорил, что все, что стоит делать, чаще всего НЕ самое легкое). Я также собираюсь сказать, что это все еще не самая легкая вещь. Существует множество компаний, которые хотят дать подходящему кандидату шанс, но я вступил в контакт с другими, которые будут возражать из-за отсутствия той «отметки одобрения», полученной в колледжах. Тем не мение,
Это началось в .net в очень большой компании. Будучи небольшим непрограммистом (в то время работал представителем техподдержки), я узнал все, что мог, о языках и технологиях, используемых применительно к компании, в которой я работал. Кроме того, и это, наверное, самое главное, я в сети. Я отправил электронное письмо каждому человеку, которого я мог найти в каталоге, в котором в названии был инженер-программист. Я раздражал? Вероятно. Я всегда был вежливым и самоуверенным с желанием учиться. Я планировал обеды или просто находил их в кафетерии и садился, чтобы попытаться поговорить. Иногда это было неловко, иначе меня отнеслись, но в итоге это дало ожидаемые результаты. Я смог получить временные учетные данные для некоторых внутренних баз данных и через некоторое время приобрел необходимые учетные данные для разработки программного обеспечения на собственной платформе. Вскоре после этого я оказался в положении компании, чтобы дать некоторые навыки в разработке внутренних инструментов для команды аналитиков, над которой я работал в то время. Оттуда я всегда стремился быть самым умным парнем в комнате самым непритязательным способом. Я жаждал и убедился, что все это знают. Я всегда пытался найти решение, где это возможно, и обнаружил, что если вы попытаетесь достаточно усердно, очень мало проблемных областей, которые невозможно решить (возможно, за пределами квантовой теории). Я оказался в положении в компании, чтобы дать некоторые навыки в разработке внутренних инструментов для команды аналитиков, над которой я работал в то время. Оттуда я всегда стремился быть самым умным парнем в комнате самым непритязательным способом. Я жаждал и убедился, что все это знают. Я всегда пытался найти решение, где это возможно, и обнаружил, что если вы попытаетесь достаточно усердно, очень мало проблемных областей, которые невозможно решить (возможно, за пределами квантовой теории). Я оказался в положении в компании, чтобы дать некоторые навыки в разработке внутренних инструментов для команды аналитиков, над которой я работал в то время. Оттуда я всегда стремился быть самым умным парнем в комнате самым непритязательным способом. Я жаждал и убедился, что все это знают. Я всегда пытался найти решение, где это возможно, и обнаружил, что если вы попытаетесь достаточно усердно, очень мало проблемных областей, которые невозможно решить (возможно, за пределами квантовой теории).
Чтобы закончить то, что может быть длинной историей (и если вы находитесь на тихоокеанском северо-западе, я бы хотел поговорить о пиве), я получил «большой перерыв» в крошечном стартапе, который был готов дать мне шанс , Они обменяли мое отсутствие опыта на немного меньшую зарплату, и я взялся за дело. Затем в течение следующих нескольких лет я перешел от одного небольшого магазина разработчиков к следующему, приобретая дружбу и навыки, и, наконец, стал главным разработчиком и директором небольшой инжиниринговой компании.
Ключевым выводом здесь, если я недостаточно эффективно об этом сообщил, является то, что вы должны общаться. Заведи друзей, выпей пива и рассмешись, и найди людей, которые работают в той сфере, в которой ты хочешь работать (предпочтительно в рамках своего технологического стека по выбору). Убедитесь, что люди знают о вашей готовности делать все возможное и стремлении выполнить работу, какой бы монументальной она ни была. Вы в основном должны "преодолеть" свое отсутствие формального образования. Прыгай и веселись. Эта индустрия лучшая на земле, ИМХО. Я установил длительные дружеские отношения и контакты, которые помогли мне переехать из одного места в другое, и я буду продолжать делать то же самое для них всякий раз, когда представится такая возможность.
источник
Во-первых, позвольте мне LOL в «краткой, но тщательной» договоренности в конце вашего большого опуса. Вниз к делу:
Как уже упоминалось, вы можете начать с каталога курсов . Но я бы посоветовал вам выйти за пределы этого списка. Это на самом деле хорошо, что ты по специальности математика. Многие инженеры, с которыми я работал, не могут вспомнить, как выполнять простую интеграцию, и никогда не изучали за пределами традиционных курсовых работ по дискретной математике CS.
Этот ответ кажется довольно скудным с точки зрения специфики. У меня нет степени CS, и я не обнаружил, что мне не хватает необходимых областей. Однако мне бы хотелось, чтобы я уделял больше времени другим интересующим меня вещам. История, лингвистика и английский, например.
Узнайте, что вы любите
Что для тебя важно? Что важно для работодателей? Моя личная эвристика всегда состояла в том, чтобы узнать, что мне кажется наиболее интересным - вам нужно любить то, что вы делаете; в противном случае вы сгорит. Программное обеспечение является настолько обширной областью деятельности, что всегда кажется, что есть работа, доступная для компетентного разработчика, который увлечен любым из этих навыков.
Учись учиться и дави себя
Я предполагаю, что это приводит меня к двум мета-навыкам, которые я бы поставил над остальными: жадное изучение вещей и упорная работа. Это может звучать банально и болезненно очевидно, но такое сочетание встречается редко. Я был по всей карте с точки зрения необходимых навыков - от внешнего интерфейса HTML / Javascript до языковых расширений для мобильной разработки, от компьютерного зрения до системного администрирования и обратно, на более чем 7 языках. Единственный истинный основной навык во всем, что сделало преодоление моего собственного невежества привычкой.
Я действительно люблю философию Джека Уайта о гитарах и музыке (серьезно, посмотрите на это), и я думаю, что она в высшей степени применима к миру программирования. Положите вещи немного дальше, вне досягаемости. Заставь себя. Тогда будет легко, когда все, что кто-то хочет для вас, это ваша работа.
Неосновные классы CS
Как и вы, отдел CS в UW отверг меня ... хотя я думаю, что позволил им сделать это в третий раз, прежде чем прийти в себя. Я закончил по специальности информатика и миноринг в прикладной математике. Но я все же взял весь несущественный трек CS. Это CSE 373, 410, 413, 415 и 417. Итак, я уверен, что я должен сначала следовать своей страсти. Мой ведет меня к этим классам. И я думаю, что вы получите довольно полное базовое образование с ними, хотя это может быть немного света с теоретической стороны вещей.
Теперь, вот классная вещь: с информатикой большинство из них засчитывается в мои обязательные факультативы. В отделе математики вам, возможно, потребуется получить явное одобрение, и это может быть очень сложно для любого, кроме CSE 417.
Вызов вверх запрос DARS (вероятно UWNetID только ссылки) и увидеть , где вещи стоят. Я делал это для разных специальностей до тошноты .
AMATH классы
В том же духе, в отделе прикладной математики есть несколько классов, которые можно использовать в качестве факультативных требований. Вы могли бы даже незначительно в AMATH, как ваш действительно.
Почему я упоминаю это? Численные вычисления - например, AMATH 301/352 - являются огромной загадкой для большинства программистов. Если вы ничего не получите от этого, вы сможете писать интересные посты в блоге . Но я бы сказал, что знание проблем, связанных с числовыми типами языка, и умение их измерять и улучшать - чертовски важно.
Построй что-нибудь!
Самое важное, что вы можете сделать, - это создать что-то новое. Возьмите идею от начала до конца. Не позволяйте этому быть чем-то простым, что находится в вашей зоне комфорта.
Самые плодотворные уроки программирования, которые я брал, всегда имели большой практический компонент программирования. Для инженера теория невероятно важна - пока ее можно превратить в нечто реальное. Так что найдите классную CS-бумагу и попробуйте ее реализовать. Шутки в сторону.
Получить работу
Теперь вы уже упоминали, что у вас есть стажировка в Amazon. Замечательно. Фактический опыт работы действительно является ключевым! Есть много людей со степенями CS, которые не могут запрограммировать свой выход из мокрого бумажного пакета. Имея хороший опыт работы стоит путь больше , чем степень.
источник
Есть еще несколько историй о том, как люди стали миллионерами, прежде чем они закончили колледж, возможно, больше всего я слышу о Билле Гейтсе. Люди с нишевыми способностями, как правило, добиваются большего успеха без степени, чем выпускник КС со штампом печенья.
Найдите что-то, чем очень мало людей занимаются, обычно что-то скучное, утомительное или трудное для изучения, и выучите это хорошо, станьте одержимым этим. Некоторые области, о которых я слышал, это бэкэнд Unix (не Linux, хотя Linux не сильно отстает от спроса), Flash (я не знаю достаточно о flash, чтобы точно вспомнить, что это было, но я знаю парня, который переехал быстро, зная это, и он сказал, что ЕСТЬ все еще рынок для этого, главным образом потому, что люди говорят, что он умирает и не будут изучать это). Возможно, вам придется пройти несколько уроков, чтобы начать, но если вы знаете свои вещи и обладаете внушительным портфолио, есть бизнес, который будет нуждаться в вас!
источник