Как быть успешным программистом без степени CS [закрыто]

46

Отказ от ответственности (Пожалуйста, прочитайте, прежде чем прыгать, чтобы ответить):

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

ИМХО Они не совсем то, что я спрашиваю, и они не настолько тщательны, как я надеюсь (я не хочу отмахиваться от ответов на вопросы ниже, и я не дискредитирую спрашивающих, я просто хочу быть немного более тщательно)

Может ли степень CS помочь старшему программисту?

https://softwareengineering.stackexchange.com/questions/80024/importance-of-certifications-for-java-programmer-without-bs-degree

https://softwareengineering.stackexchange.com/questions/81591/in-the-absense-of-a-cs-degree-how-can-i-fill-in-the-gaps-so-to-speak

Важность степени CS при подаче заявки на рабочие места развития?

Позвольте мне быть ясным, я не спрашиваю следующее:

  • Как научить себя программированию с нуля (без степени в CS)
  • Как позиционировать себя как хорошего разработчика программного обеспечения (без степени в CS)
  • Как получить отличную высокооплачиваемую работу в качестве разработчика программного обеспечения (без степени в CS)

Немного контекста:

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

Прежде всего, мне невероятно повезло. Мне дали несколько рабочих мест (несколько тяжелых бэкэнд-проектов PHP / MySQL и несколько приложений WP7 в XAML / C #), благодаря которым я действительно узнал все, что знаю о разработке программного обеспечения. Почти все работы по разработке программного обеспечения, которые у меня были, были такими, на которые я не был по праву квалифицирован (и я дал это понять своим работодателям до того, как они меня наняли). Я не хочу отдавать себе должное, когда этого не происходит, но я бы сказал, что совершенное смирение обходится без скромности .

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

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

Как я думаю, большинство разработчиков согласятся с этим, изучая типичные курсы общего образования для студентов, в том числе вводные курсы по программированию. АБСОЛЮТНО ПАЛЕСЫ по сравнению с написанием реального кода, созданием реальных 2 продуктов, работой с замечательными людьми и положительным влиянием на жизнь пользователей 3 .

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

Однако программа информатики в UW очень , очень , очень , очень конкурентоспособна.

Таким образом, для меня не было неожиданностью, когда я был отклонен программой. Дважды. По иронии судьбы, в то же самое получасовое окно, в котором я получал по электронной почте всегда вежливое, хотя и удручающее уведомление об отказе, мне позвонил Amazon, предложив мне летнюю стажировку 4 в качестве SDE.

Когда я смотрю на других мужчин моего возраста (21), которые преследуют те же цели, что и я в разработке программного обеспечения, я чувствую себя довольно хорошо о том, где я нахожусь, что я изучаю, кто я и что Я могу сделать. Конечно, есть намного, намного, намного более блестящие 21-летние подростки, чем я, я не хочу сказать, что я выделяюсь из толпы, просто я чувствую, что я не ужасно отстаю от прогресса моего среднего сверстника ,

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

Математическая степень

Я стремлюсь получить степень по математике с единственной целью получить степень. Есть те, которые говорят, что я должен бросить и начать работать сейчас (как я имел возможность сделать), и есть те, которые говорят, что я действительно должен закончить свою степень. Я решил продолжить обучение по совершенно разным причинам, чем те, что есть в лагере, поэтому, пожалуйста, не поощряйте меня так или иначе в этом вопросе. Считайте вопрос "закрытым" :)

* ГЛУБОКОЕ ДЫХАНИЕ * ... извините, это дольше, чем я ожидал.

По сути, это мой вопрос:

  • Как мне объективно определить, какие области обучения, общие знания и другие навыки, которые я получил бы в результате получения степени CS, мне могут или не могут быть необходимы сейчас?
  • Как мне отсортировать эти навыки в порядке важности?

  • Каков наилучший способ (в течение следующих двух лет) дополнить мое образование, чтобы получить эти качества таким образом, чтобы соответствовать или даже превосходить уровень бакалавриата высшего образования высшего учебного заведения?

Вот шаги, которые я уже предпринимаю:

  1. Задайте вопрос сообществу разработчиков (этот пост)
  2. Проводить наставничества с опытными разработчиками, которые разделяют со мной схожую карьеру
  3. Определите краткосрочные и долгосрочные «учебные» цели и последующие учебные программы с изложением тем обучения
  4. Продолжайте писать код и работайте над проектами, которые мне нравятся

Если вы зашли так далеко, вы заслуживаете печенье :) Я ценю, что вы терпите меня.

Итак ... сообщество разработчиков, опытные разработчики, сокурсники, которые находятся в одной лодке со мной, что бы вы посоветовали?

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

Обновить:

Я понимаю, что я не предоставил очень конкретные параметры для того, что я считаю успешным «ответом» на мой вопрос (ы). Я думаю, что вопрос очень расплывчатый и может потребовать ряда «правильных» ответов.

Через некоторое время я выберу ответ, который соответствует следующим атрибутам:

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

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


(1) - я работал над предыдущей версией этого сайта, и пока у нас не было явного 
      Разговор об этом, я чувствовал, что я не был в состоянии сделать очень хорошо (это может быть 
      о чем свидетельствует тот факт, что с тех пор они полностью изменили свой сайт)
(2) - Во-первых, да, это реальный продукт (хотя я пишу этот пост в Chrome ...), и
      это пинает задницу Во-вторых, я был старшеклассником-разработчиком в тесте, написал доказательство
      концептуальный код для некоторых новых функций для IE8 ... так было некоторое время назад.
(3) - На момент публикации я являюсь разработчиком, который написал это приложение, я больше не являюсь
      ответственность за его кодовую базу
(4) - моя стажировка начнется в июне 2012 года, и я буду работать в интернет-магазине 
      команда.
Пол Хазен
источник
17
Мир нуждается в большем количестве программистов с математикой. Достаточно.
Питер Б
1
Рынок для психологов и других индивидуальных консультантов или консультативных услуг должен быть огромным. Я думаю о смене работы ....
Инго
16
Начните с редактирования этого вопроса и разрежьте его пополам.
JeffO
8
@PaulHazen, как только вы удалите свой чрезвычайно подробный фон и содержание отказа от ответственности и дойдете до своих актуальных вопросов, вы зададите три вещи: как вы определяете, чего вам не хватает из-за отсутствия степени CS, как получить то, чего вам не хватает и как расставить приоритеты в том, что вам не хватает. Все три вопроса полностью охвачены дублированным вопросом. Если вам не нравятся ответы, предложите награду : для этого они и существуют.
7
@PaulHazen В качестве альтернативы, если вас не интересуют вопросы, которые вы перечислили (которые являются дубликатами предыдущего вопроса), пересмотрите свой вопрос, чтобы задавать только что-то новое. Ваш вопрос страдает от слишком большого количества информации, большая часть которой, вероятно, не нужна для вашей проблемы, и его следует объединить в пару, чтобы задать очень специфическую проблему, которая у вас уже не затрагивается другими вопросами.

Ответы:

17

Хорошо, я нахожу слишком заманчивым не отвечать на ваш вопрос, так что вот я ...


Сначала обо мне


Мне 26 лет , и благодаря моему отцу (кстати, математику и в настоящее время работаю профессором) у меня был шанс с самого раннего этапа моей жизни быть за компьютером. (в 1986 году, когда я родился, хотя в те дни это было не самым обычным делом, у нас дома всегда был один или два компьютера). Это, как говорится, и - очевидно, из-за моего любопытного и склонного к математике / ориентированного на решение проблем характера - это было незадолго до того, как я влюбился в программирование. Сначала с Паскалем, в возрасте 7-8 лет, а потом почти все остальное.

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

То, что произошло, было, вероятно, самой большой ошибкой в ​​моей жизни (на данный момент): как бы вы это назвали, когда кто-то влюблен в код , говорит на 15+ языках и написал тысячи строк кода (от компиляторов до микроядер и веб-приложений) рамки) к 18 годам, внезапно (причины все еще слишком неясны, на мой взгляд, но общее, даже если неуловимое, влияние вашего окружения никогда не бывает слишком незначительным) решает продолжить карьеру в медицине ? Я предполагаю "ошибку".

Результат? Спустя 5 лет (в 23 года) и за 1 год до получения степени доктора медицинских наук (все еще работая хобби в личных проектах с открытым исходным кодом), я решил, что с меня хватит, и решил бросить. И не только то, что я так сильно ненавидел это новое поле (медицину), но и то, что во всей этой ситуации было что-то тревожное, ненасытный зуд, спрятанный глубоко внутри ... ( что бы это было, если ...? ) Более того, я только что понял, что мое хобби , которое я считал отличным, но даже не представлял себе настоящую работу, могло не только принести немного денег, но и принести мне их много + держать меня счастливым как личность. Итак, я решил бросить. (= лучший выбор, даже если я немного опоздал, я когда-либо делал).

Итак, вот я сейчас, когда-то будущий врач (психиатр на грани нервного срыва, если быть точным; глупый я!), Идущий на степень CS (на самом деле, на моем 3-м курсе; и, честно говоря, стремиться к этому, чтобы в итоге не испытать недостатка в этих ужасных типичных квалификациях ...) и более чем счастливого профессионала, работающего над чем-то, что я обожаю, и определенно над темой, по которой я могу предложить больше всего.


Несколько наблюдений (из собственного опыта)


  • Программирование - одна из немногих областей, где действительно хорошие всегда найдут путь, несмотря ни на что. И это, безусловно, НЕ вопрос типичных квалификаций (если честно, если бы у меня была компания и я хотел нанять программистов, я могу легко определить, кто хорош в считанные минуты - независимо от того, имеет ли он степень или нет)

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

  • Математика, безусловно, где CS родился. Но CS больше не просто математика. У меня всегда был сильный математически ориентированный мозг, но я ни в коем случае не математический гуру. И, честно говоря, в повседневном программировании (если только вы не занимаетесь созданием графического движка или чего-то слишком локализованного), вам, скорее всего, никогда не понадобится ничего, кроме простой арифметики (сложение, вычитание, умножение, деление, по модулю) и нескольких вещей. о массивах. (многие со мной не согласятся, возможно, математики или слишком академически ориентированные программисты, но, безусловно, овладение исчислением - это НЕ то, что нужно, чтобы стать хорошим программистом). Наличие хорошего математического фона может вам помочь, но НЕ из-за самой математики; это поможет вам исключительно на основе одной общей вещи, которую разделяют эти две области: навыки решения проблем.

  • Математика - это наука (и наука, которую я уважаю).

  • Программирование это искусство. (И прикладная наука, если вы настаиваете). Но имейте это в виду: искусство - и я всегда так к нему относился. И как со всеми искусствами, этому нельзя научить. Я могу научить вас формальному способу рисования лица и сделать вас лучше, чем обычно, но это не сделает вас ни да Винчи, ни Климтом. Мона Лисас написана Да Винчи, а не тщательно образованными художниками. Отличный код написан великими художниками кода. А умение и преданность могут легко перевесить формальное образование.


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


  • Быть умным, иметь отличные навыки решения проблем и страсть к предмету (если у вас его нет, просто оставьте его; быть посредственным - не оправдание)
  • Много времени посвятить теме
  • Учиться все время («потому что вы просто никогда не узнаете все это; и обратите внимание: почему« обучение »должно быть в какой-то степени связано с этим? Мне всегда было гораздо приятнее делать вещи в моем собственном темпе»). )
  • Написание кода все время (независимо от того, сколько книг вы прочитали; ваш уровень кодирования прямо эквивалентен количеству написанного вами кода)
  • И снова, ЛЮБОВЬ к предмету (если вы не любите его достаточно, а я имею в виду действительно любите его, все вышеперечисленное рано или поздно станет невыносимым; для меня кодирование как работа по-прежнему похоже на оплату .. смотреть фильмы: абсолютно абсурдно но все же просто здорово)

На ваши вопросы


  • Как мне объективно определить, какие области обучения, общие знания и другие навыки, которые я получил бы в результате получения степени CS, мне могут или не могут быть необходимы сейчас?

Хотя я должен был бы по-настоящему знать, что входит в степень по математике, позвольте мне подвести итог того, что вы, скорее всего, упустите из степени CS (как курсы / предметы / и т. Д. - вдохновленные программой обучения моего университета ) в произвольном порядке. :

  • Логическое проектирование цифровых систем (некоторые низкоуровневые схемы и / или / xors / etc - казалось бы, не слишком связанные, но все же действительно образовательные)
  • Архитектура компьютера (наряду с некоторым кодированием на ассемблере; вы, скорее всего, никогда не будете его использовать, но вы не можете сказать, насколько это может повлиять на ваше отношение как программиста)
  • Структуры данных (от связанного списка до сложных деревьев и т. Д .; как бы они ни казались простыми, рано или поздно вам понадобится хорошая справка об этом; использование готовых решений, которые вы не понимаете, не является хорошим программистом сделал бы)
  • Компиляторы (да, компиляторы! Вы когда-нибудь будете писать компилятор? Возможно, нет; но если вы не сможете написать его, вы никогда не узнаете, как все это работает ...)
  • Операционные системы (такие же как выше)
  • Компьютерные сети
  • Искусственный интеллект и экспертные системы (вы, скорее всего, никогда не будете кодировать и в Прологе; но это все еще одна из тех вещей, которые могут сформировать ваш мозг кодирования и заставить его видеть вещи с совершенно иной точки зрения)
  • Как мне отсортировать эти навыки в порядке важности?

Знание того, что нужно расставлять приоритеты в постоянно меняющейся области, поскольку 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: Я знаю, что некоторые из моих пунктов могут показаться противоречивыми, и я уверен, что многие будут не соглашаться со мной. Это приемлемо Но это не меняет того, как я вижу вещи - и особенно то, что я люблю.

Dr.Kameleon
источник
Это именно то, что я искал. Спасибо! Почти все остальные ответы тоже были хорошими, очень немногие содержали что-то неправильное или бесполезное. Я буду обновлять вопрос, включив в него небольшой раздел о том, почему я выбрал это, и ссылку на пост в блоге, где более подробно об этом говорится (причина, по которой такое объяснение помещается в моем блоге вместо программистов, связана с тем, что уже ОГРОМНАЯ длина поста, а также растущее число заинтересованных модераторов, которые уже чувствуют, что вопрос плохо подходит для этого сайта). Оставайтесь в курсе. И еще раз спасибо.
Пол Хазен
@PaulHazen Добро пожаловать! Рад, что помог (ЕСЛИ я это сделал) ... (Теперь, что касается ОГРОМНОЙ длины моего ответа ... аааа ... Система автоматически распознала его как пост "сообщества вики", и я пытаюсь получить модераторы возвращают его в его первоначальное состояние: простой - хотя и немного отредактированный - ответ)
Dr.Kameleon
В разделе meta ( meta.programmers.stackexchange.com/questions/3513/… ) я на самом деле рекомендую им переместить его в более подходящее место. Согласно официальному FAQ вопрос не подходит для этого форума. Однако, наблюдая за фактическим использованием Программистов, я чувствую, что здесь уместно. Модераторы могут решить, где это лучше всего подходит. Резюмируя свои мысли о перемещении: Согласно тому , что Программисты это должен быть он не принадлежит здесь, но в соответствии с тем, что Программисты это он идеально подходит.
Пол Хазен
@PaulHazen Ну, по крайней мере для меня (хотя я ни в коем случае не эксперт по SO), это кажется абсолютно уместным.
Доктор Камелеон
Да, я просто подниму руки вверх. Пока люди могут использовать Google или стек обмена, чтобы хотя бы найти ответы, я счастлив. Содержание должно быть легко обнаруживаемым в будущем людьми с таким же вопросом.
Пол Хазен
18

Как мне объективно определить, какие области обучения, общие знания и другие навыки, которые я получил бы в результате получения степени CS, мне могут или не могут быть необходимы сейчас?

Просмотрите учебный план отдела 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-документы).

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

zvrba
источник
+1 точно. Несмотря на то, что вы забыли 90% деталей, вы бы сказали, что опыт изучения этих деталей укоренил концепции и идеи, или было бы более ценно потратить время на изучение меньшего количества деталей и большего количества концептуальных идей / идей более высокого уровня? ?
Пол Хазен
@PaulHazen Смотрите новое редактирование (начиная с UPDATE2 - оно не помещается в поле комментария;))
zvrba
Очень подтверждение шагов, которые я сейчас предпринимаю. Добавленный раздел бесценен. Я чувствую, что список вещей, о которых я хочу узнать подробнее, слишком длинен, чтобы быть разумным, у меня исторически есть проблема с ограничениями в этом отношении. Есть ли хороший способ взглянуть на отрасль и определить, какие темы в рамках тех, которые меня интересуют, было бы наиболее полезно узнать подробнее? Или вы бы сказали, что неважно, какие из них я изучаю, пока я глубоко погружаюсь в меньший набор из них? Кажется, отрасль может быть трудно прогнозировать в этом отношении.
Пол Хазен
1
Попытка предсказать индустрию - игра, потерянная заранее [например, я не уверен, что кто-то мог предположить, что Twitter - (почти) IRC-клон для Интернета - станет таким увлечением. Для меня до сих пор остается загадкой, как они собираются зарабатывать деньги в долгосрочной перспективе.] Вы должны сделать упреждающий выбор в отношении того, какую работу вы хотели бы выполнять, и выяснить, что нужно для ее получения. Как? Найдите кого-нибудь, кто уже работает в вашей целевой индустрии, и поговорите с ним.
zvrba
1
@Paul Концепции имеют жизненно важное значение, но детали (как правило) не являются. Вы можете посмотреть детали, когда они вам нужны, но вы должны изучить общую картину, чтобы понять, что в этом районе стоит что-то найти.
Донал Феллоуз
7

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

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

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

Итак, вернемся к содержанию вашего вопроса: хотя степень CS может повысить ваши шансы получить первое собеседование после окончания колледжа, я считаю, что это практически не влияет на ваш успех или профессионализм разработчика. Я всегда следовал философии «найми для отношения, тренируйся для мастерства», и это хорошо окупается.

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

кашка
источник
Справедливо ли было бы сказать, что с вашей точки зрения внутри степени CS практически нет ничего, что само по себе помогло бы стать успешным программистом? В настоящее время мне больше всего нравится ваш ответ, вы наверняка сталкиваетесь со многими вещами, которые я пытаюсь понять и понять. Не могли бы вы придать дополнительный контекст тому, в какой области в CS вы делаете набор? Я полагаю, что рекрутеры, нанимающие новых выпускников для работы над операционными системами, могут иметь иные взгляды, чем вы (но я могу быть совершенно неправ в этом). Цените время, которое вы потратили, это очень полезно
Пол Хазен
Я работаю в ИТ-консалтинговой компании, которая набирает довольно много сотрудников в возрасте от 0 до 1 года. Не могу с уверенностью ответить относительно магазинов по разработке ОС (сколько их там?), Но я бы предположил, что то же самое происходит, если они умны. Очень немногие выпускники будут обладать достаточным предметным навыком, чтобы быть конкурентоспособными в одиночку, поэтому вы нанимаете за отношение, потенциал и способность учиться.
Пап
Интересно. Я дал вам «+1», и мне нравится то, что вы говорите, больше, чем кто-либо другой, однако вы более точно отвечаете на вопрос: «Как мне успешно попасть в область разработки программного обеспечения» Бесценная информация, чтобы быть уверенным , но я заинтересован в понимании атрибутов успешного программиста, а не атрибутов желаемого программиста (да, очевидно, успешные программисты тоже желательны, но это не всегда происходит наоборот).
Пол Хазен
Я не нанимаю людей, которые, как мне кажется, уже успешны или имеют потенциал и способность быть успешными. Так что для меня «желанный» и «успешный» - это одно и то же. Если кто-то нанимает на работу по другим критериям, он либо ошибается, либо плохо определяет талант. В любом случае, вероятно, не очень хорошее место для работы. Однако, как работодатель, вы должны знать, как использовать потенциал ваших людей и реализовать его на практике. Это сочетание обучения, наставничества и коучинга, и если у вас его нет, неважно, насколько талантливых людей вы нанимаете.
Пап
7

По сути, это мой вопрос: как мне объективно определить, в каких областях обучения, общих знаний и других навыков я бы получил степень бакалавра в области образования, в которой я могу испытывать недостаток или нет?

Ответ 1

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

A1. Почему

Концептуальная степень CS - это обучение. Если кто-то возвращается из степени CS без чистой разницы, то его основная цель не выполняется. Экзамены и курсовые работы являются «официальной» мерой того, что было изучено. Тем не менее, индивидуальное понимание (я узнал что-нибудь новое?) Должно быть лучшей объективной мерой.

A1. Опыт

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

Мой мир расширился в результате получения мастеров в области вычислительной техники. Мой мир также расширился от профессиональной деятельности.

Как мне отсортировать эти навыки в порядке важности?

Ответ 2

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

A2. Почему

«Сфера» важности сильно зависит от «контекста». Без контекста достоинства навыков трудно разобрать.

A2. Опыт

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

Каков наилучший способ (в течение следующих двух лет) дополнить мое образование, чтобы получить эти качества таким образом, чтобы соответствовать или даже превосходить уровень бакалавриата высшего образования высшего учебного заведения?

Ответ 3

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

Что я имею в виду?

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

A3. Почему

Если ты только учишься и остаешься в пределах своих границ, ты будешь только в порядке. Вы не хотите быть просто "хорошо". Ты хочешь быть "лучшим", каким ты можешь быть. Вы не сможете раскрыть свой реальный потенциал, если вы НЕ ПОСТОЯННО продвигаетесь за пределы своей границы.

A3. Опыт

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

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

Темная ночь
источник
Хорошие замечания наверняка, это резонирует со мной. Смотрите обновление, если вам интересно, почему я пока что не могу пометить любой ответ как "правильный".
Пол Хазен
И приятных обновлений. Сохраняйте веру, я не забуду отметить ответ как таковой, когда придет время.
Пол Хазен
1
Не могли бы вы привести в порядок свой ответ? У вас есть два повторяющихся заголовка раздела с различным, но похожим содержанием под каждым.
Пол Хазен
Привет Пол, я не уверен, как ты хочешь, чтобы я убрал это. Я думаю, это выглядит немного запутанным. Каждый подзаголовок относится к каждому вопросу, т. Е. Каждый «вопрос» имеет «Почему» и «Опыт», чтобы поддержать ответ, как вы просили в своем обновлении. Я более чем счастлив внести любые изменения с точки зрения ясности.
Темная ночь
Оооо ... это меня так смутило, не могли бы вы увеличить заголовки или использовать ** жирный ** текст для обозначения подзаголовков? Я думаю, что это улучшит ясность.
Пол Хазен
4

Как мне объективно определить, какие области обучения, общие знания и другие навыки, которые я получил бы в результате получения степени CS, мне могут или не могут быть необходимы сейчас?

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

Как мне отсортировать эти навыки в порядке важности?

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

Каков наилучший способ (в течение следующих двух лет) дополнить мое образование, чтобы получить эти качества таким образом, чтобы соответствовать или даже превосходить уровень бакалавриата высшего образования высшего учебного заведения?

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

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

Карл Билефельдт
источник
Такой опытный пользователь, удивленный тем, что вы не нашли время, чтобы прочитать ответы других пользователей, ваш ответ почти идентичен ответам, которые уже здесь. Пожалуйста, будьте внимательны при рассмотрении ранее существовавших ответов, или, если вы считаете, что ваш ответ отличается, помогите уточнить это для меня.
Пол Хазен
Я не видел, чтобы кто-нибудь еще рекомендовал брать уроки CS по выбору, что многие люди не понимают, что это разрешено. Практическое дублирование остального является результатом того, что задали огромный составной вопрос :-)
Карл Билефельдт
Я прошу прощения, вы правы. Никто другой не предложил классы CS в качестве факультативных. Хотя это хороший совет и, конечно, не неправильный , некоторые другие ответы были более тщательными и касались трех вопросов в лучшем контексте с остальной частью моего вопроса. Чтобы не отрицать ни один из советов, которые вы даете (я даю вам +1), он будет принят близко к сердцу, искренне, большое спасибо, и еще раз извините за мою ошибку.
Пол Хазен
3

Почему вы думаете, что степень CS так важна, чтобы быть успешным программистом ?

Для того, чтобы стать успешным программистом, вам нужно:

  • Страсть к программированию
  • Бесконечная жажда знаний о новых технологиях
  • Как-нибудь попасть в индустрию

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

Похоже, вы уже попали в индустрию, и, безусловно, у вас есть страсть и жажда знаний.

Что вы должны знать, так это продолжать исследовать, изучать и приобретать опыт, и отрасль будет знать, как ценить вас без степени.

Пример От кого-то, с кем я работаю

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

Mithir
источник
Хотя это отличный контент, я чувствую, что он не совсем ударил в ответ на мой вопрос (что может быть моей ошибкой в ​​неправильной формулировке). Я не уверен в том, что наличие степени CS делает человека успешным программистом. У меня вопрос больше: «Какие из тем, преподаваемых в рамках степени CS, действительно способствуют успеху программиста, и как мне объективно определить, как я соответствую этим темам, и как Isupplement / обогатить мою существующую страсть, голод за знания и отраслевой опыт работы с такими темами? Ваш ответ, конечно, не так.
Пол Хазен
2

ИМХО, нет никаких заданий по программированию (или продаж, или сисадминов и т. Д.), Есть только задания по решению проблем. Мы нанимаем и платим людям за решение проблем, написание кода - это только часть решения проблемы. Да, даже продажи - это форма решения проблем. Таким образом, математическая степень доказывает, что вы можете решать проблемы, а также степень CS.

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

Чтобы попытаться ответить на ваши вопросы:

классы? выберите некоторые теоретические классы CS, а не классы написания кода. Найти некоторые не CS / математические классы, например. философия это поможет вам выделиться из толпы

приоритеты? изучать новые вещи (не просто легкие уроки, которые вы уже знаете наполовину)

следующие два года? разговаривать с людьми, учиться, строить отношения, искать внешнюю деятельность. (Хобби / спорт / времяпрепровождение вне работы / учебы - это один из способов понять, насколько мотивирован заявитель.)

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

JQA
источник
Это здорово, спасибо за ваш ответ. Я даю «+1», однако я не могу пометить его как ответ, другие ответы тщательно раскрыли причину , а также определили способы объективного определения целей обучения. Ничто из этого не отменяет ваш ответ, я принимаю то, что вы говорите близко к сердцу, и это действительно полезно, поэтому еще раз спасибо.
Пол Хазен
@PaulHazen - если вы хотите знать, почему? затем выберите класс философии :-) А если серьезно, я получил 4-летнюю теоретическую степень CS, где не было курса C, потому что «это то, чему вы можете научиться самостоятельно». Чтобы осветить, я выбрал небольшой класс философии в одном семестре, а затем сделал другой. Наряду с вызовом это была отличная группа людей и свежие идеи. И ваш вопрос ясно показывает, что вы обладаете навыками письма, необходимыми для любого занятия по математике / КС.
JQA
1

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

Я думаю, что пока могу считать себя немного успешным в этой области. У меня есть некоторый опыт работы в колледже, и я хотел бы в конечном итоге закончить свое высшее образование в области компьютерных наук, но я еще не получил степень в данный момент в моей жизни. У меня, однако, был довольно большой успех в разработке программного обеспечения, несмотря на этот недостаток (продолжающийся 10 лет). Я должен быть честным с вами, хотя это не обязательно было легко сделать (конечно, я бы поспорил, что все, что стоит делать, чаще всего НЕ самое легкое). Я также собираюсь сказать, что это все еще не самая легкая вещь. Существует множество компаний, которые хотят дать подходящему кандидату шанс, но я вступил в контакт с другими, которые будут возражать из-за отсутствия той «отметки одобрения», полученной в колледжах. Тем не мение,

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

Чтобы закончить то, что может быть длинной историей (и если вы находитесь на тихоокеанском северо-западе, я бы хотел поговорить о пиве), я получил «большой перерыв» в крошечном стартапе, который был готов дать мне шанс , Они обменяли мое отсутствие опыта на немного меньшую зарплату, и я взялся за дело. Затем в течение следующих нескольких лет я перешел от одного небольшого магазина разработчиков к следующему, приобретая дружбу и навыки, и, наконец, стал главным разработчиком и директором небольшой инжиниринговой компании.

Ключевым выводом здесь, если я недостаточно эффективно об этом сообщил, является то, что вы должны общаться. Заведи друзей, выпей пива и рассмешись, и найди людей, которые работают в той сфере, в которой ты хочешь работать (предпочтительно в рамках своего технологического стека по выбору). Убедитесь, что люди знают о вашей готовности делать все возможное и стремлении выполнить работу, какой бы монументальной она ни была. Вы в основном должны "преодолеть" свое отсутствие формального образования. Прыгай и веселись. Эта индустрия лучшая на земле, ИМХО. Я установил длительные дружеские отношения и контакты, которые помогли мне переехать из одного места в другое, и я буду продолжать делать то же самое для них всякий раз, когда представится такая возможность.

Пол Шумейкер
источник
1
Мне очень плохо, что я не могу пометить это как ответ. Как и многие другие ответы, вы не говорите, что я думаю, что это неправильно , но вы полностью сосредоточены на том, как продвинуть мою карьеру, когда суть моего вопроса - как стать успешным программистом. В то время как успешный программист подразумевает хорошую карьеру, я бы предпочел сосредоточиться на аспекте «успешного программиста» и позволить части карьеры быть (важной и очень намеренной) после размышлений. Я даю вам «+1» за ценную информацию, которая частично отвечает на мой вопрос.
Пол Хазен
О, и если говорить о сети, я хотел бы услышать больше о вашей истории! Похоже, мы разделяем много одного и того же пути / целей. Не стесняйтесь выбирать тот метод контакта, который лучше всего подходит для вас на paulhazen.net/about , и мы возьмем это пиво.
Пол Хазен
1

Во-первых, позвольте мне LOL в «краткой, но тщательной» договоренности в конце вашего большого опуса. Вниз к делу:

Как мне объективно определить, какие области обучения, общие знания и другие навыки, которые я получил бы в результате получения степени CS, мне могут или не могут быть необходимы сейчас?

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

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

Как мне отсортировать эти навыки в порядке важности?

Узнайте, что вы любите

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

Учись учиться и дави себя

Я предполагаю, что это приводит меня к двум мета-навыкам, которые я бы поставил над остальными: жадное изучение вещей и упорная работа. Это может звучать банально и болезненно очевидно, но такое сочетание встречается редко. Я был по всей карте с точки зрения необходимых навыков - от внешнего интерфейса HTML / Javascript до языковых расширений для мобильной разработки, от компьютерного зрения до системного администрирования и обратно, на более чем 7 языках. Единственный истинный основной навык во всем, что сделало преодоление моего собственного невежества привычкой.

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

Каков наилучший способ (в течение следующих двух лет) дополнить мое образование, чтобы получить эти качества таким образом, чтобы соответствовать или даже превосходить уровень бакалавриата высшего образования высшего учебного заведения?

  1. Неосновные классы CS

    Как и вы, отдел CS в UW отверг меня ... хотя я думаю, что позволил им сделать это в третий раз, прежде чем прийти в себя. Я закончил по специальности информатика и миноринг в прикладной математике. Но я все же взял весь несущественный трек CS. Это CSE 373, 410, 413, 415 и 417. Итак, я уверен, что я должен сначала следовать своей страсти. Мой ведет меня к этим классам. И я думаю, что вы получите довольно полное базовое образование с ними, хотя это может быть немного света с теоретической стороны вещей.

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

    Вызов вверх запрос DARS (вероятно UWNetID только ссылки) и увидеть , где вещи стоят. Я делал это для разных специальностей до тошноты .

  2. AMATH классы

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

    Почему я упоминаю это? Численные вычисления - например, AMATH 301/352 - являются огромной загадкой для большинства программистов. Если вы ничего не получите от этого, вы сможете писать интересные посты в блоге . Но я бы сказал, что знание проблем, связанных с числовыми типами языка, и умение их измерять и улучшать - чертовски важно.

  3. Построй что-нибудь!

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

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

  4. Получить работу

    Теперь вы уже упоминали, что у вас есть стажировка в Amazon. Замечательно. Фактический опыт работы действительно является ключевым! Есть много людей со степенями CS, которые не могут запрограммировать свой выход из мокрого бумажного пакета. Имея хороший опыт работы стоит путь больше , чем степень.

abscondment
источник
ЭТО. Это очень хорошо. На самом деле я считаю, что это более чем правильный ответ. Отмеченный ответ был чуть более достоверным ... * вздох *, так сложно судить с таким количеством хороших ответов :( Хотелось бы помочь вашему представителю больше. Но так как я знаю вас в реальной жизни (но в основном через твиттер, как мы «в ранее обсуждались ха - ха), я буду покупать тебе пиво или виски в качестве утешительного приза.
Пол Hazen
-2

Есть еще несколько историй о том, как люди стали миллионерами, прежде чем они закончили колледж, возможно, больше всего я слышу о Билле Гейтсе. Люди с нишевыми способностями, как правило, добиваются большего успеха без степени, чем выпускник КС со штампом печенья.

Найдите что-то, чем очень мало людей занимаются, обычно что-то скучное, утомительное или трудное для изучения, и выучите это хорошо, станьте одержимым этим. Некоторые области, о которых я слышал, это бэкэнд Unix (не Linux, хотя Linux не сильно отстает от спроса), Flash (я не знаю достаточно о flash, чтобы точно вспомнить, что это было, но я знаю парня, который переехал быстро, зная это, и он сказал, что ЕСТЬ все еще рынок для этого, главным образом потому, что люди говорят, что он умирает и не будут изучать это). Возможно, вам придется пройти несколько уроков, чтобы начать, но если вы знаете свои вещи и обладаете внушительным портфолио, есть бизнес, который будет нуждаться в вас!

BillyNair
источник
1
-1 за то, что не ответил на мой вопрос. Вы не ошиблись, но вы, кажется, пропустили мой раздел «что я не ищу» и не попали ни в одну из вещей, которые я искал.
Пол Хазен