Советы для CS Ungrad перед началом моей степени - PullRequest
0 голосов
/ 04 июня 2009

У меня было несколько классов CS в Java, C # и VB, и я изучил PERL, Python, Javascript, WPF и RegEx для моей текущей работы. Я подал заявление в отдел CS в Университете Вашингтона и все еще жду, чтобы узнать, был ли я принят.

У меня вопрос: что мне делать сейчас, в течение летних месяцев, прежде чем я надеюсь поступить в UW, чтобы получить степень? Я пытаюсь выучить как можно больше C # и WPF по предложению моего руководителя. Но есть ли что-то, чему я должен научиться или, по крайней мере, быть знакомым до того, как "официально" начать обучение по программе CS?

Заранее спасибо.

Edit: Я чувствую, что упустил важную часть своего опыта в том плане, что я уже учусь в местном колледже и у меня есть двухлетнее образование, которое пропускает мой GUR, когда я учусь в четырехлетнем университете. Итак, у меня уже есть несколько базовых классов: логика, история, английский, математика и т. Д.

Ответы [ 10 ]

3 голосов
/ 04 июня 2009

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

http://en.wikipedia.org/wiki/Computer_science

3 голосов
/ 04 июня 2009

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

  • Шаблоны проектирования
  • Блоки приложений (корпоративная библиотека, процесс интерфейса пользователя)
  • Ссылки Архитектуры (Smart Client Software Factory)
  • Модульное тестирование
  • Автоматизация сборки, непрерывная интеграция
  • Безопасность
  • Статический анализ кода
  • Код покрытия

Вы также можете посмотреть некоторые сеансы из PDC * последних лет , которые могут дать вам хорошее представление о том, куда идут дела.

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

2 голосов
/ 04 июня 2009

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

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

Вот несколько идей о том, что вы, возможно, захотите изучить дальше, учитывая ваш текущий опыт:

  • Какие языки, которые вы уже знаете, динамически типизированы, а какие статически типизированы? Каковы преимущества / недостатки каждого стиля? Из каких языков они произошли?

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

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

Конечно, возможно, лучший способ действий - это просто расслабиться и расслабиться перед поступлением в колледж. веселиться!

2 голосов
/ 04 июня 2009

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

До колледжа лето, так что отдыхайте и наслаждайтесь. Вложите столько себя в сторонние проекты, сколько захотите (это должно быть весело!), Но знайте, что в колледже будет достаточно времени, чтобы обсудить, следует ли вам использовать vi или emacs.

1 голос
/ 04 июня 2009

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

Вы заинтересованы в разработке программного обеспечения? Базы данных? Взаимодействие человека с компьютером? Искусственный интеллект?

Все они попадают под знамя информатики, но у них у всех разные навыки.

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

Вы упоминаете, что у вас был опыт работы с несколькими языками. Я бы так и оставил. Не сосредотачивайтесь только на C # или конкретной платформе Microsoft.

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

Узнайте о абстракции . Это может дать вам преимущество среди ваших сверстников.

Это зависит от того, на каком уровне вы тоже находитесь. Например, основной материал -

В C # - знаете ли вы разницу между типом значения и ссылочным типом?

Знаете ли вы разницу между ASCII и Unicode ?

Или вы уже отлично это поняли?

Читайте о динамических языках, функциональном программировании, ОО-программировании.

Java и C # имеют много общего. Так почему бы не поиграть с чем-то другим? Дайте Хаскеллу попробовать. Играй с Эрлангом. Попробуйте сделать что-нибудь в Лиспе. Они все немного разные.

Не просто придерживайтесь языков среднего уровня. Разберитесь с SQL (не только mySQL или SQL Server, но и стандарт ISO / ANSI SQL). Разберитесь с логикой представления - HTML / CSS, возможно, и Flash.

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

Выполнение проекта в интересующей вас области / языке является ценным. Работа с лабораторными работами в книге - это одно, а на самом деле создание полноценного проекта - это другое. Могли бы вы сделать проект / сайт на летние каникулы одним из ваших интересов?

Почему бы не перейти от программного обеспечения? Экспериментируйте с Arduino !

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

Также носить солнцезащитный крем .

1 голос
/ 04 июня 2009

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

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

0 голосов
/ 04 июня 2009

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

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

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

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

0 голосов
/ 04 июня 2009

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

Еще одна мысль: какие курсы первого курса за пределами CS вы бы провели и готовы ли вы к этим курсам? Не могли бы вы наметить, какие курсы второго, третьего и четвертого курсов, кажется, дают вам «Я должен принять это!» чувствуя, что вы можете быть готовы к этому. Много ли вы знаете о кампусе, студенческих организациях, которые могут быть полезны, например, CS Club, или других технических специалистах, которые могут собираться по общим интересам.

Знаете ли вы, как вы учитесь лучше всего? Если кто-то попросил вас узнать о каком-нибудь предмете, посвященном слюнявству, знаете ли вы, как бы вы подошли к нему и сделали это?

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

0 голосов
/ 04 июня 2009

Купи кофемашину!

0 голосов
/ 04 июня 2009

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

...