Я заканчиваю со степенью информатики, но я вижу сайты, такие как Stack Overflow, и поисковые системы, такие как Google, и не знаю, где бы я даже начал писать что-то подобное. В течение одного лета у меня была возможность работать разработчиком для iPhone, но я чувствовал, что в основном склеиваю библиотеки, которые написали другие люди, с небольшим пониманием механизмов, происходящих под капотом.
Я пытаюсь улучшить свои знания, изучая алгоритмы, но это долгий и болезненный процесс. Я нахожу алгоритмы сложными, и, по мере того, как я учусь, пройдет десятилетие, прежде чем я овладею материалом в книге. Учитывая мою текущую ситуацию, я потратил месяц на поиски работы, но мои навыки (C, Python, Objective-C) относительно невелики и не очень желательны на местном рынке, где C #, Java и веб-разработка намного выше в спросе. Это не означает, что возможности C и Python не существуют, но они, как правило, требуют более 3 лет опыта, которого у меня нет. Мой средний балл в порядке (3.0), но он недостаточно высок, чтобы подать заявление в крупные компании, такие как IBM, или вернуться в аспирантуру.
В основном я заканчиваю со степенью информатики, но я не чувствую, что я научился программировать. Я думал, что присоединение к компании и постоянное программирование даст мне возможность развить свои навыки и учиться у тех, кто опытнее меня, но я изо всех сил пытаюсь найти работу и начинаю сильно расстраиваться.
Я собираюсь развернуть свою сеть шире и посмотреть за пределы города, в котором я вырос, но что пытались сделать другие люди в аналогичной ситуации? Я усердно работал, но не уверен, что смогу выйти самостоятельно и написать свое собственное приложение. (То есть, станьте независимым разработчиком на рынке приложений для iPhone.) Если ничего не получится, мне нужно будет рассмотреть вопрос об обновлении и изучении более популярных навыков или попробовать что-то незначительно связанное с ИТ, но, учитывая все усилия, которые я приложил, это чувствуется. как выходить
Хотя я понимаю, почему вы чувствуете, что это не «настоящее программирование», правда в том, что работа по интеграции составляет значительную долю типичной рабочей нагрузки для корпоративного программиста. Ваш опыт может быть немного более ценным, чем вы думаете :)
источник
Во-первых, спасибо за чрезвычайно честный вопрос. Существует несколько способов решения проблем. Вот несколько советов, которые я считал очень полезными для меня в прошлом, и до сих пор продолжаю использовать их для расширения моих знаний.
Учиться, учиться и учиться еще. Это, пожалуй, самый важный совет, который я могу вам дать. Никогда не прекращайте учиться . Знание одного языка - это хорошо, знание нескольких - еще лучше. Знание других языков сделает вас лучшим программистом, облегчит решение определенных задач и поможет вам лучше понять общие структуры данных.
Начните с малого .
Начните хобби проект в свободное время. Не делайте то, что вы можете сделать довольно легко. Возьмите проект, в котором вы не знаете, с чего начать. Брось себя в глубокий конец. Преимущество этого состоит в том, что вы узнаете вещи, о которых никогда не знали, и когда вы их завершите, вы почувствуете огромную гордость и удовлетворение. Это то, что заставляет меня двигаться.
Имейте искреннюю страсть к тому, что вы делаете. Хотя люди не согласятся со мной по этому вопросу. Я не верю, что вы можете преуспеть в этой области, если вы просто считаете это работой 9-5. Там должно быть страсть, чтобы сделать это.
Помоги другим людям на ТАК! Лучший способ понять это - попытаться научить этому других людей.
Изучите программы других людей и попытайтесь выяснить, как они работают, а затем внедрите подобные методы в свои собственные программы. Попытайтесь прочитать это и получить понимание этого, затем сделайте это самостоятельно, основываясь на этом понимании, а не скопируйте и вставьте.
Держись за это . Временами бывает очень сложно, но очень приятно, когда вы закончите. Если вы чего-то не понимаете, сделайте перерыв, проясните свои мысли и попробуйте снова. Спросите нас на ТАК! Мы - желающая связка :)
Никогда не прекращайте изучать новые технологии.
Прочитайте несколько книг. Я понимаю, что будучи студентом, вы бы сделали тонну чтения. Вот пара практических книг, которые вам могут пригодиться ... надеюсь - Прагматичный программист: от подмастерье до мастера - код завершен: практическое руководство по созданию программного обеспечения
источник
Начните личный проект. Проблема со школой в том, что самым сложным, что вы сделали, был проект, который занимал от 15 недель до года и в котором участвовали еще пара человек. Проблемная область была хорошо понята (ваш профессор не давал вам задач, которые не укладывались бы в вашем семестре). Это не та роскошь, которую дает реальный мир.
Если вам нужно сделать что-то важное, от начала до конца, к которому вы можете быть увлечены, ваш мозг начнет оборачиваться этим процессом. Пока это просто карьера, и у вас нет к ней любви, вы все равно будете чувствовать, что еще не сделали этого.
источник
источник
Я не могу помочь с вашей ситуацией на работе, но я надеюсь, что смогу помочь вам развить ваши навыки, а также в перспективе.
Возможно, вашим инструкторам есть за что стыдиться. Также возможно, что ваши чувства о том, что вы не знаете, как программировать, естественны и соответствуют этой стадии вашей жизни и образования. Вот несколько идей, которые могут помочь:
Многим работодателям все равно, какие курсы есть в вашей расшифровке или даже каков ваш средний балл. Вместо этого они хотят знать, что вы можете сделать, и особенно то, что вы построили. Для хорошей работы то, что вы создали, важнее, чем технология (C, C #, что у вас) в вашем резюме.
Если у вас не было возможности построить ряд интересных проектов во время обучения, позор своим инструкторам. Но вы можете построить эти проекты сейчас. Поищите сайты на интересные проблемы. Наши студенты второго семестра только что закончили «Поиск песни» - мы вытащили огромное количество текстов для веб-сайта, они создали перевернутый индекс, вы подали ему ключевые слова, и он показывает вам тексты, которые содержат эти слова, в контексте. Это не Google, но он сделан по тем же принципам с похожими структурами данных, и вы можете начать строить его сейчас.
Может быть, вы не усердно работали над правильными проблемами? Хорошо найти проблемы, которые
Если вы решаете подобные проблемы, вы учитесь делать выбор, жить с последствиями, а если что-то не получается, вернуться назад и пересмотреть свой выбор. Вы узнаете больше из своих неудач, чем из своих успехов, но вы получите больше уверенности в своих успехах, чем в своих неудачах.
Хорошие проблемы - со свойствами, подобными тем, которые я перечислил выше - похожи на золото, за исключением того, что если вы получаете хорошую проблему от кого-то другого, они ничего не теряют. Поищите в Интернете хорошие проблемы и практикуйтесь, практикуйтесь, практикуйтесь. Если проблемы Эйлера - то, с чего вы должны начинать, то для новичков это нормально. Но скоро вам захочется создавать небольшие или средние проекты, которые вы считаете действительно крутыми . Если вы в восторге от того, что вы создали, это поразит потенциальных работодателей. Если вы не взволнованы, вас трудно нанять.
Питер Норвиг сообщает, что для того, чтобы стать экспертом, требуется десять лет . Конечно, вы не чувствуете себя экспертом сразу после получения степени. Я открою вам небольшой секрет: большинство сотрудников Гарвардского факультета (я был им в течение восьми лет) чувствуют, что на самом деле не принадлежат к Гарварду, они не знают достаточно, и, должно быть, это была какая-то ошибка, они были наняты. Такие чувства очень и очень распространены среди людей, которые переходят из школы на работу или с одного вида работы на другой. Так часто встречается название: «синдром самозванца».
Даже если у вас есть степень, ваш университет все равно будет с вами разговаривать. Если у вас были действительно хорошие профессора, они, вероятно, все еще заботятся о вас. Они, безусловно, заботятся о том, чтобы один из их учеников закончил со средним баллом, и все же чувствует, что она не освоила базовые навыки своей профессии. Так что ищите одного или двух самых энергичных, самых сочувствующих профессоров из вашей программы, и получите некоторую помощь в поиске хороших проблем. Затем возьмите на себя ответственность за свои навыки, свои знания и свои чувства к ним. Создайте немного чего-нибудь каждый день, и не тратьте свое драгоценное время на то, что не очень круто. В конце концов, я обещаю, что вы снова почувствуете волнение по поводу программирования, и после этого вы также сможете обрести уверенность в себе.
источник
В старом «Законе и Порядке» была сцена, в которой окружной прокурор жалуется, что она ничего не узнала о том, как выполнять свою работу в юридической школе, что она ничего не узнала о реальном мире. Профессор, которому она жалуется, отвечает: «Это школа права, а не школа юриста».
То же относится и к информатике. Возможно, вы не научились вносить непосредственный вклад в какой-то проект, который вы видите в Интернете, но вы, вероятно, создали основу, которая необходима для успеха в долгосрочной перспективе.
Сначала найди работу, любую работу. Стать самодостаточным. Особенно в нынешней экономике, я бы никогда не упрекнул ни одного кандидата за работу в книжном магазине или что-то еще, пока они ищут более подходящую работу. У меня есть вопросы к людям, которые бездельничают.
Найти проект, любой проект. Например, на github.com есть много подходящих проектов.
Хорошая новость заключается в том, что намного раньше, чем вы думаете, никого не волнует, куда вы пошли в школу, каким был ваш средний балл или что-то в этом роде.
Повесить там! Это может быть тяжело, но вы будете рады опыту однажды.
источник
Вы смотрели на ProjectEuler ? Я учил себя Python, выполняя задачи на этом сайте. :] Если вы после изучения Java или C #, вы можете попробовать это. Кроме того, я рекомендую попробовать свои силы в программировании GUI.
Редактировать:
Вот отличная тема о SO для многих ссылок, с которыми вы можете ознакомиться для практики кодирования:
https://stackoverflow.com/questions/662283/websites-like-projecteuler-net
источник
По вашему имени пользователя я предполагаю, что вы женщина ... Если нет, не стесняйтесь игнорировать это или адаптировать его под свою собственную точку зрения.
По моему опыту, женщины, окончившие колледж по информатике, считают себя гораздо менее компетентными, чем их коллеги-мужчины с аналогичными навыками. Можно сказать, что женщины (или, если точнее, женщины, которых я знаю) просто более честны по отношению к своим собственным недостаткам, но, в конце концов, у них больше проблем с продажей себя работодателям.
(Я провел большую часть выпускной школы, чувствуя себя полным провалом по сравнению с моими сверстниками, и закончил тем, что окончил мой класс.)
Поэтому мой совет - оставаться честным с самим собой и продолжать усердно работать над развитием своих навыков. Но не стоит преуменьшать то, что вы знаете, когда ищете работу, и не удерживайте себя от подачи заявки на «досягаемую» работу.
Добавлено как запоздалая мысль:
источник
Многие люди говорят, что вы должны начать личный проект. На мой взгляд, это лучший совет здесь. Я бы добавил кое-что, чего не видел, когда прочел другие ответы ...
Выберите что - то в области , что вы увлечены о . Лучшее место, чтобы найти это, может быть, в ваших интересах за пределами компьютерных наук. Это может быть некоммерческая деятельность, в которую вы вовлечены, хобби, которым вы увлечены, спорт, которым вы занимаетесь.
Найти сотрудника . Одно только программирование сложно, так что еще одна вещь, которая очень сильно помогла бы, если бы вы нашли приятеля, чтобы сотрудничать с вами в этом проекте. Это делает его намного веселее и мотивирует. В своем недавнем сообщении в блоге Джефф Эттвуд рассказывает об этом точно в своем опыте построения SO. http://www.codinghorror.com/blog/2010/05/on-working-remotely.html
Выберите что-нибудь скромное (изначально) . Идеальный проект должен начинаться с чего-то маленького. Если цель из ворот слишком амбициозна, то она станет слишком сложной. Сделав разработку для ПК, телефонов, встроенных систем и Интернета, я бы сказал, что Интернет - это лучшее место для поиска чего-то достижимого, что другие люди могли бы начать использовать немедленно.
Если этот проект - труд любви, над которым вы счастливо работаете до глубокой ночи, а на следующее утро выпрыгиваете из постели, чтобы вернуться к нему, тогда за этим последуют хорошие вещи. Вы узнаете, доверие будет расти. И когда у вас есть что-то, что люди могут видеть, это становится началом вашего портфолио. Ничто так не впечатляет программистов и (порядочных) менеджеров по найму, как нечто реальное.
источник
Несколько комментариев с точки зрения того, кто был разработчиком более 20 лет:
Они представляют собой продукт групп, в основном основанный на библиотеках и инфраструктуре (.net, java, asp.net и т. Д.), Созданных другими группами и опирающихся на опыт и ресурсы. То, что вы сами не знаете, с чего начать делать что-то подобное, вполне понятно. Не беспокойся об этом.
Боюсь, что сейчас много работы по разработке. Но есть много возможностей сделать интересную работу над этими библиотеками. И не беспокойтесь о поиске сложных алгоритмов - вам почти наверняка никогда не придется реализовывать быструю сортировку, связанный список или что-либо еще в течение вашей карьеры. Вот для чего нужны библиотеки.
Умение программировать и умение работать в качестве профессионального разработчика - это две разные вещи. Вам просто нужен некоторый опыт, желательно работать с другими разработчиками на реальных системах. Попробуйте добавить C # или Java к вашему набору навыков - между ними нет большой разницы, поэтому знания можно передавать. Остерегайтесь становиться слишком специализированным слишком рано. Возможно, вам придется смириться с тем, что вы не заработаете много денег сразу, поэтому держите свои личные расходы на некоторое время, если можете.
Начните работать над проектом, который вы упомянули, но, не только углубляя свои знания в области программирования, постарайтесь использовать его, чтобы получить опыт, связанный с такими навыками, как управление версиями, модульное и интеграционное тестирование и даже написание простой документации. Эти навыки отличают разработчика от программиста и являются хорошей демонстрацией для будущего работодателя. Существует множество бесплатных инструментов (экспресс-выпуски Visual Studio, github, nunit, приложения Google), которые могут помочь.
Из того, что вы написали, звучит так, будто ваша степень по CS научила вас думать о технических проблемах. Вы также, кажется, обладаете хорошим уровнем самопознания, в том числе о своих текущих технических возможностях и опыте. Используйте их как преимущества. Сейчас не время для выхода на рынок труда, но если вы будете усердно работать над ним, все будет в порядке. Не волнуйтесь, учитесь, получайте опыт, будьте в курсе, старайтесь делать то, что вам нравится.
Удачи!
источник
Программирование - это не только ваше понимание алгоритмов или вашего среднего балла в колледже. Программирование - это способность мыслить нестандартно, желание и желание учиться и, что самое важное, креативность.
Что касается меня, я только что закончил колледж в прошлом мае, и у меня был ужасный средний балл. Я сосредоточился больше на своей общественной жизни, чем на научных кругах, и я заплатил цену.
Тем не менее, во время моего недавнего собеседования после окончания колледжа ( которое заняло у меня менее года, чтобы попасть на землю ) я продемонстрировал свое творчество, страсть к обучению и аналитические навыки, которые помогли мне получить работу.
источник
Примечание: я ожидаю, что этот пост будет отклонен. Это не ответ на оригинальный постер, а наблюдение за большинством комментариев, которые я прочитал выше.
Ответы, которые я читаю выше, действительно пугают меня. Кажется, почти всеобщее чувство, что степени бакалавра бесполезны или неактуальны, или вас ничему не учат. Действительно ли степень Comp.sci стала настолько плохой, или это просто горячий воздух разработчиков, не имеющих степеней, пытающихся оправдать их отсутствие?
Серьезно, люди, чему они сегодня учат в университете? Когда вы получите степень CS (по крайней мере, когда я был студентом) к тому времени, когда вы закончите, у вас будет хорошее понимание дизайна компилятора, комп. сложность, формальные методы и логика, целый зоопарк структур данных и алгоритмов, исследование основных операций (LP и т. д.), базы данных, цитография и безопасность, алгоритмы планирования, сетевые протоколы, разработка интернет, разработка ОС и ядра, параллельные алгоритмы и структуры данных, численные алгоритмы и многое другое. Все это обычно дополняется огромным программным проектом, который является частью окончательной диссертации. Не говорите мне, что выпускники comp.sci не получают достаточно практики программирования.
Я также ценю тот факт, что некоторые из более традиционных степеней comp.sci не учитывают некоторые аспекты цикла разработки программного обеспечения, вы, вероятно, не услышите много разговоров о TDD, модульном тестировании. Но давайте будем откровенно честными: это не ракетостроение, не так ли? Вы также не услышите о SCRUM или анализе функциональных точек. Преподавание подробных курсов по таким базовым вопросам было бы излишним, хотя многие ученые в настоящее время имеют курсы по проектированию систем, где они дают студентам представление о том, как эти вещи работают.
Конечно, вы не можете быть экспертом в .NET, PHP или других текущих отраслевых стандартах, но это не имеет значения. Через 5-10 лет выбранные языки все равно изменятся. То, что вы учитесь водить в Peugeot, вовсе не означает, что вы не сможете управлять Fiat, и то же самое должно применяться к языкам программирования. Для того, чтобы работать на любом языке, нужно потратить несколько месяцев практики с несколькими хорошими книгами.
Конечно, если что-то является пустой тратой времени, это эти дорогостоящие «сертификаты», которые в основном включают в себя сдачу электронного экзамена с несколькими вариантами ответов и спрашивают вас о (обычно бессмысленных) деталях конкретной архитектуры или языка. Они склонны измерять компетенцию программиста по его / ее знанию определенных патологических случаев программирования.
Я работал в ИТ-индустрии в различных компаниях и также участвовал в процессе собеседования с другими разработчиками программного обеспечения. Мы задали несколько обычных вопросов о fizzbuzz, но они были нацелены в основном на людей без формального обучения или на стажеров. Я никогда не встречал выпускника Comp.sci, не способного отвечать на основные и не очень основные вопросы программирования.
Обратите внимание, я живу в Европе и знаю только о европейских университетских степенях. Однако я почти уверен, что университетский стандарт в США намного выше, чем в ЕС.
источник
Ваше смирение послужит вам хорошо. В Уме начинающиха не является полезным для всех видов обучения, независимо от того , сколько образования и опыта у нас есть.
Прорабатывайте упражнения, как предлагали другие, в Project Euler и других местах.
Разработка решений, чтобы помочь другим здесь, на SO. Упражнение понимания вопроса, определения того, что, как вы знаете, может быть применимо, и, наконец, формулирование ответа, поможет укрепить вашу уверенность, так как упражнения повышают ваши навыки.
Придерживаться; вам будет хорошо.
источник
Выпускник со степенью по компьютерным технологиям не делает вас прекрасным программистом, как выпускник музыкальной программы делает вас отличным музыкантом.
Там нет замены для практики, практики, практики и опыта. Программируйте 8 часов в день, и через 5 лет у вас может появиться понимание, которого вам не хватает сейчас.
источник
Такой откровенный вопрос, отличные ответы - я кратко включусь :)
Ответы до сих пор заставили меня повеселиться - они потенциально иронично отмечают наше собственное величие. Я пришел в SO из-за плохой документации и ошибок в фреймворках. Здесь, очевидно, есть другое золото, но стоит сохранить свое смирение, даже если вы станете великим разработчиком - и я говорю это с точки зрения личного исторического (?) Высокомерия.
Имейте в виду, что вы, возможно, не будете (вероятно, не) наняты техническим специалистом, хотя лучшие специалисты по персоналу и менеджеры будут использовать технического специалиста для оценки вас.
Работодатели имеют план для своих сотрудников, стараются осознать этот план до конца и уважительно вписываются в него, возможно, придавая ему немного индивидуальности и совершенствования. Трудности и возможности могут возникнуть, когда у работодателя нет конкретного плана - задавая хорошие вопросы и помогая им уточнить план, вы действительно можете выстоять в таких ситуациях.
Деловые люди могут (по праву) испытывать параноидальность по поводу того, что разработчики покровительствуют им, поскольку нам часто приходится немного управлять их восприятием, чтобы помочь им с решениями, которые они не понимают, - и я говорю это, выражая недовольство, чтобы показать вам перспективу НЕ иметь или развивать ваших нетехнических сотрудников. Я смиренно считаю, что понимание того, что это часто является сутью взаимоотношений между техниками и не техниками, важно - и трудно избежать, что мы делаем глупо.
Будучи профессионалом, непредубежденным и уважительным, он действительно получает работу - если вы не уверены в том, что такое профессионал, я уверен, что есть места, где можно поработать над этим в Интернете - я бы хотел, чтобы кто-то указал мне на это, когда я начинал. :)
Последнее, что я хотел бы сказать, это то, что по мере того, как вы становитесь лучше в разработке и архитектуре, и вы уже звучите так, будто ступили на этот путь, вы можете обнаружить, что ваш профессиональный код может стать крайне неудовлетворительным, даже если это подходящее решение.
Я не уверен, какое есть решение, но постараюсь найти выход и быть менее эмоционально вовлеченным в вашу работу, это поможет вам изменить себя и жить лучше - будьте особенно осторожны, пытаясь приложить дополнительные усилия, чтобы что-то «правильное» - большую часть времени вы будете создавать осложнения для своих коллег, и вы почти никогда не сможете выделить количество времени, которое вам необходимо для его реализации, в сроки вашего проекта. Симптом этого - «темнеет» - когда вы не хотите никому объяснять, что вы хотите сделать. Многие из лучших разработчиков могут объяснить суть того, что они делают для непрофессионала, - это отличный навык, который я выучил, и я нашел его интеллектуально полезным для практики.
Хех, и, оценивая, для начала, разделите вашу задачу на куски, суммируйте время, а затем удвойте его (это называется, делить, побеждать, идти домой;)
Удачи! Я бросил школу, ожидая, что буду инструктором по лыжам, и в итоге стал ведущим разработчиком. Я уверен, что вы преуспеете в том, что вы в конечном итоге тоже делаете.
источник
Да, это нормально - большинство школ, даже престижных, делают большую работу по обучению информатике и ужасной работе по разработке программного обеспечения. Это постепенно улучшается, но еще предстоит пройти долгий путь.
В любом случае, похоже, что вы делаете правильные вещи:
источник
Действительно отличный вопрос. Я уверен, что есть много людей, которые проходят через то, что вы описали во всех сферах жизни и на рынках труда.
Во-первых, не беспокойтесь о вещах, которые находятся вне вашего контроля. Вам не разрешают подчеркивать или даже думать о школе, о том, что вы делали или не учили, или о том, как хорошо вы учились.
Второе - специализация. Всегда будут востребованы люди, которые действительно хороши в том, что они делают, даже если то, что они делают, оказывается неясным. Вам нужно выбрать свой любимый язык программирования и решить полностью освоить этот язык и «сделать его своим». У вас уже есть много полезных советов о том, как улучшить навыки программирования, но в конце концов ничто не сравнится с поиском авторитетная книга на эту тему и запереться в своей комнате на несколько дней, пока вы ничего не делаете, только читаете каждую страницу и пишете каждый пример, который дает книга.
Третье - рекламировать себя. В этой истории информатики этот шаг никогда не был проще, чем сегодня. Ответы, которые вы даете, и вопросы, которые вы задаете в SO, - это ваше резюме. Возьмите на себя ответственность стать ведущим авторитетом в SO для языка, который вы решили освоить. Возьмите на себя ответственность за любой вопрос, который приходит через этот сервер с вашим тегом на нем, даже если это означает часы тщательных исследований и поиск поздних ответов. Ищите в архивах и читайте все вопросы, которые когда-либо задавались на SO по вашей теме. Исправьте дезинформацию, предоставьте свои собственные ответы и варианты ответов и объедините несколько существующих ответов в один лучший ответ. Наполнение ТАК бесконечным потоком ваших комментариев, ответов и правок, должно быть вашим смыслом (плюс это весело, потому что вы получаете очки репутации).
Четвертое - работа над своим публичным имиджем. Уверенность в себе имеет важное значение для получения лучшей работы. Компаниям нужны люди, которые являются отличными коллегами, сотрудниками и коммуникаторами. Если вы думаете, что это может быть проблемой, скажите своим друзьям, что они вам нужны, чтобы повысить ваше эго и обливать вас бесконечными дополнениями, а затем сходите в местную библиотеку и возьмите одну из них .
источник
Ладно, увидели эту хакерскую новость, и я сказал: "СВЯТОЙ ХЛОПОК, КОТОРЫЙ Я !!"
Таким образом, я закончил в декабре прошлого года со степенью в CS и чувствовал, что каким-то образом мне удалось пройти мои классы и получить степень, фактически не зарабатывая ее. Мне казалось, что все мои одноклассники обладали невероятными навыками кодирования, и все, что я мог сделать, это создавать базовые программы на Java. Чтобы научиться кодировать и стать хорошим программистом, нужно много времени. Там есть оооочень много вещей, которые нужно выучить, и мой совет - просто взять их немного вовремя. Вы узнаете вещи, как вы идете. Как и у всех остальных, грустно, лучший способ учиться - особенно заниматься кодированием. Не говоря уже о том, что есть так много о создании приложений, о которых они даже не беспокоятся в школе. Не расстраивайтесь, просто знайте, что вам есть чему поучиться, и понимайте, что на изучение этого потребуется время.
Я думаю, тебе обязательно стоит заглянуть за город, где ты вырос. Есть множество компаний, которые нанимают выпускников CS, и не все из них требуют или ожидают, что вы будете хорошим программистом прямо после школы. Было много собеседований, на которых я не задавал никаких вопросов по кодированию (также было много вопросов, которые требовали от меня решения алгоритмов и кодирования). Подайте заявку в компании, которые больше заботятся о вашей способности учиться, чем о том, что вы уже знаете (по моему опыту, крупные компании больше заботятся об этом, потому что это не повлияет на них так сильно, если вы не сможете сразу запустить код).
Я не знаю, является ли кодирование тем, чем вы хотите заниматься и заниматься, но есть также множество нетехнических работ, требующих технического образования. Вы можете посмотреть на эти варианты.
Я бы не стал изучать все тонкости одного языка, такого как C # или Java, и сосредоточился бы на принципах программирования. Вы должны быть в состоянии передать хорошие навыки кодирования и применять их на любом языке (это важно для долголетия в вашей карьере. Ява не станет горячей навсегда). С другой стороны, знание «горячих навыков» может помочь найти работу. Навыки интервью очень важны. Возьмите каждое интервью, которое вы получите, даже если это просто для практики.
В любом случае, не думаю, что крупные компании, такие как IBM, находятся вне вашей досягаемости. Несколько месяцев назад я чувствовал то же, что и вы, и сейчас я работаю в IBM. Мой средний балл тоже был не очень хорош. Я все еще отстой в программировании, но знаю, что со временем мне станет лучше. Просто будьте уверены в своей способности учиться!
источник
Вау, что много ответов до этого.
Как насчет совершенно другого ответа ...
Давайте переосмыслим вашу проблему с точки зрения того, чтобы быть человеком.
«Я закончила урок зачатия, и я только что родилась. Моя мама короновалась, и я должен быть доставлен завтра утром. Но когда я смотрю на таких спортсменов, как Усэйн Болт, я думаю», как я могу когда-либо управлять этим быстрый?".
Но вот вы здесь, вы полноценный человек, вы учились в школе, вы можете ходить, разговаривать, и если вы прошли компьютерный курс, вы довольно умны в освоении. Нечего стыдиться.
Теперь, когда родился Усэйн Болт, а потом внезапно начал впадать в безумные времена на треке, или это было большим количеством продолжения жизни, выяснения того, что его интересовало, за которым последовало невероятное количество заявлений, а затем внезапно " Бам!» он был здесь.
Скорее последнее. Так что не беспокойтесь о том, что не знаете, что делать. Требуется время, чтобы понять, что подходит именно вам. Это для вас , а не то, что думают ваши родители, не то, что думают ваши сверстники. Что подходит для вас . Что зажигает твой огонь . Что заставляет вас думать * да, это круто ", даже когда все остальные думают, что это штаны.
Нередко начинать (и / или) оставлять свою степень без понятия, что вы хотите сделать.
Для меня я хорошо училась в школе на уровнях O (квалификация в Великобритании), но я не могла наплевать на уровни A (необходимо поступить в университет, чтобы получить степень). Таким образом, я пошел в меньшее место, чтобы получить степень (и в результате не степень, которую я бы предпочел). Но я выложил это (все еще не имея понятия, чего хотел в своей карьере) и узнал много нового об электронике и материалах, которые большинство программистов никогда не изучают. В течение этого времени я работала фрилансером в качестве автора компьютерных игр.
Конечный результат? После получения степени (с похвалой) я пришел на работу с собеседованием при более высокой зарплате, чем те, кто занимается прямой электроникой, и у меня не было изменений в прическе или ношения костюма. Какая? Ну, в 23 года все это имеет значение (оглядываясь назад, в 44 года я отчасти смеюсь над этим, но для тебя это молодость).
Эта компания обанкротилась, а потом я стал серьезнее. Но, вероятно, прошло еще несколько лет, прежде чем я вдруг обнаружил (случайно) то, что действительно меня заинтересовало. Оказалось, программные средства низкого уровня. Должно было быть очевидно - все компьютерные игры, которые я написал, были написаны на ассемблере, мне всегда нравились вещи низкого уровня, которые никто другой не мог понять. Но чтобы увидеть это как будущее, нужно больше зрелости, и не удивительно, что это не проявлялось до моей середины 20-х.
Меня часто поражает (и поражает), что молодые люди, часто еще подростки, похоже, знают, что они хотят делать. Но настоящий вопрос в том, делают ли они это в 27 лет? Или они изменили курс, потому что их ранние идеи не были правильными для них?
С точки зрения того, как я могу сделать что-то столь же впечатляющее, как ТО (что бы это ни было, Google, SO)? Ну, вы делаете это по частям, так же, как вы делаете программное обеспечение и все остальное в жизни. Вы начинаете с основ, получаете опыт в этом. Если вы достаточно хороши, вы продолжаете и получаете больше опыта и т. Д., Или вы отказываетесь от него, потому что понимаете, что вы недостаточно хороши или что это так скучно, как в аду (вот почему я не делаю связи, хотя всегда был золотой рудник. Для меня это скучно!).
Во что бы то ни стало, посмотрите на своих сверстников, посмотрите на своих старших, изучите их выбор и интересы. Но проверь и свое. Часто то, что на первый взгляд кажется безумным / помешанным, на самом деле является реальной сделкой. Заниматься чем-то интересным (а не просто оплачивать счета) НАСТОЛЬКО намного выгоднее.
Да, я знаю, когда вам 23 года, вы сосредоточены на Audi TT и классной квартире и, таким образом, соблазняетесь деньгами, а не осмысленным выбором карьеры, но если серьезно, то в какой-то момент вы поймете, что крутая машина не совсем сломлена быть - эта девушка должна любить тебя за то, кто ты есть, а не за то, что ты водишь.
Серьезно, подумай об этом. Не очень крутое решение может быть просто правильным ответом.
источник
В дополнение к отличным советам, данным другими, я бы добавил участие в мероприятиях разработчиков в вашей области. Ищите встречи, группы пользователей, бары, кодовые лагеря и т. Д. Это поможет вам пообщаться с другими разработчиками, найти работу, не отставать от новых технологий и обеспечить реалистичный взгляд на уровни навыков других разработчиков.
источник
Следуйте правилу 10000 часов.
Чтобы стать мастером чего-либо, вам нужно практиковаться не менее 10 000 часов. Поэтому потратьте 10000 часов на программирование, и вы станете мастером этого. Если вы не потратили 10 000 часов на программирование и не чувствуете себя мастером, не расстраивайтесь, просто тратьте больше времени на программирование.
Также обратите внимание, что на это у вас уйдет около 3 с половиной лет, если вы программируете по 8 часов в день. Если вы программируете только в рабочее время, это может занять около 4 лет. Если вы не потратили столько времени во время обучения на 3/4 года обучения, то, скорее всего, вы не почувствуете себя мастером.
источник
Просто пара мыслей, если можно.
Венди говорит, что можно получить высшее образование со степенью бакалавра, но при этом мало знакома с практикой программирования. Разве это не ужасно, даже ужасно? Это так же тревожно, как мошенничество, которое затопило английские факультеты в 70-х годах: литература - это не собрание идей, которые можно понять и интегрировать, а скорее набор «текстов», которые студент должен абстрагировать и «деконструировать» ( http: / /www.answers.com/topic/deconstruction ). К счастью, этот зловонный прилив ослабевает, может быть, потому, что инструкторы, которые уничтожили его слабый прибой, уходят в отставку.
Несколько лет назад - десятилетия назад - мой первый курс по CS научил меня ассемблеру (до изобретения C) с использованием актуальных проблем, таких как сортировка, хеширование и поиск (и, да, рекурсия). Мой второй курс учил проектированию и реализации реального работающего компилятора. Я был студентом неполного рабочего дня в Массачусетском технологическом институте, и эти два курса были всем, что мне нужно, чтобы начать получать оплату как программист; и стать просто несколько продуктивным два или три месяца спустя.
Итак, сегодня утром, услышав крик Венди, я думаю, что MIT, разумеется, не смог бы разбавить свои предложения и ввести в заблуждение своих студентов (в контексте практики программирования), практически бесполезным дерьмом. Но когда я смотрю на учебную программу MIT по EE / CS, я вижу, что именно так и произошло:
http://student.mit.edu/catalog/m6a.html
Особенно замечаю, что кафедра использует Python как / язык обучения! Я имею в виду, действительно! Похоже, что степень CS в MIT означает подготовить студента к преподаванию CS в MIT. Поговорим о рекурсии!
Затем я наткнулся на этот вклад в Coding Horror ( http://www.codinghorror.com/blog/2006/07/separating-programming-sheep-from-non-programming-goats.html ) и очень задумался над этим. этого разговора:
«Я опоздал на эту дискуссию [о прогнозировании успеха кандидатов в программисты], но по своему опыту в качестве 30-летнего старшекурсника CS, прошедшего обучение, я обнаружил, что классы программирования бесполезны и менее плохо преподаются как я учился только в местном колледже, а затем в университете Иллинойса в Чикаго, но начальные уроки программирования были:
«1. Объектно-ориентированный, который оставил студентов с небольшим или вообще не понимая процедурных методов, и
2. Отученные классы. Классы состояли в основном из описаний различных типов проблем и математики, стоящей за ними, а не из-за синтаксиса и структуры, для которых людям было приказано просто прочитать книгу.
«Код почти не распознавался напрямую до ядра Data Structures, и затем он все еще зависел от того, какой инструктор у вас есть, некоторые были очень легкими в коде, а другие были довольно тяжелыми в коде. Вы могли бы сказать, что для учителей было большим соблазном быть легким в программировании на этом этапе, потому что, если бы они сконцентрировались на коде, им также пришлось бы сконцентрироваться на обучении студентов, которые в течение двух лет проходили курс информатики, программированию.
«Поскольку программирование - это хобби для многих молодых людей, я думаю, что образовательные учреждения полагаются на это, чтобы установить ожидаемые кривые обучения, оставляя людям, которые практически не имели опыта программирования, когда они поступают в школу, нет иного выбора, кроме как обманывать, как сумасшедшие, своего свободного времени на изучение кода или смены специализаций. И это не обязательно является недостатком абстрактного мышления в моем опыте, потому что все, кого я знаю, кто бросил обучение в CS, оказались в области электротехники, в которой нет ничего, что могло бы потрясти на абстрактном фронте. Они все еще не знают, как программировать, в то время как делают математику, которую я не могу сделать ни головами, ни хвостами. Самые нелепые воспоминания:
«1. Java как необходимый язык программирования. Я не собираюсь разбирать Java здесь, но разве не было бы неплохо учащимся изучать свою собственную сборку мусора? И разве не было бы неплохо учить указатели, даже если мы никогда не решили снова программировать на каком-то языке?
2. Взять базовый класс по теории операционных систем, будучи затопленным Java, и выяснить, что он был в C (конечно), даже без одного класса C в кампусе?
«Конечно, мне тридцать, а также я один из тех, кто всегда программировал, поэтому у меня не было проблем, но я видел множество людей, которые, как я знал, были лучше в абстракции, чем я (из Calculus, DiffEQ и классов физики до ) и их полная агония при попытке закончить программу, которая была составлена против них ".
Просто пара точек данных, но, как уже говорили другие, преследует.
- Пит
источник
Во-первых, держись!
Во-вторых, вот что помогло мне:
В-третьих, я был в той же лодке, что и вы, когда я снова закончил школу, завис там и продолжайте поиски. Ваша первая работа там.
источник
Очень немногие люди заканчивают любую дисциплину, будучи экспертом в чем-то, что они только что изучили. Информатика ни в коем случае не является особенной в этом отношении. Ничто не сравнится с эмпирическим опытом, и вы получите его только от разработки полноценного программного обеспечения для реальных клиентов со всеми требованиями, временными ограничениями, изменениями и командной работой, которые это включает.
источник
Я нашел этот злой сайт на днях http://99designs.com/ Под дизайном веб-сайта или другим дизайном вы, вероятно, можете найти проекты, связанные с программным обеспечением.
Это было бы отличным способом получить кодирование, развить новые навыки, познакомиться с новыми людьми, которые могут быть потенциальными работодателями, и вы даже можете заработать немного денег.
Я обнаружил, что работодателям очень важно показать, что, несмотря на то, что у вас не было работы, вы не сидели на заднице. Покажите, что вы вышли и сделали несколько проектов, желательно те, которые вы можете показать на собеседовании.
источник
Не беспокойся Рим не был построен за один день.
РЕДАКТИРОВАТЬ:
#! diff A B
источник
Во-первых, не волнуйтесь, что вы не можете кодировать Google. Google был создан в течение нескольких лет многими опытными программистами. Это все равно, что закончить степень по изобразительному искусству и задаться вопросом, как вы могли бы приготовить Тайную вечерю
Для поиска работы, не волнуйтесь о требованиях. Просто позвоните им и скажите, что у вас нет лет, но вы все равно хотели бы подать заявку. Если они действительно хотят получить опыт, спросите, есть ли еще доступные должности младшего уровня - они могли бы создать новую должность только для вас. Большинство рабочих мест созданы для конкретного человека. Обязательно свяжитесь с руководителем проекта, а не с отделом кадров. HR обычно не создают новые рабочие места, они часто просто проверяют кандидатов на существующие рабочие места. Гугл твой друг в этом случае;)
Не пытайтесь кодировать веб-приложение (например, Google или переполнение стека), если вы не хотите инвестировать около 6 месяцев. Это огромная кривая обучения. Вам необходимо научиться управлять VCS, запускать веб-сервер, кодирование HTML JS и CSS, систему баз данных и язык веб-приложений. Это жестоко. Большинство из этих технологий не могут быть переданы, если вы не хотите работать в Интернете.
Если вы действительно хотите создавать веб-приложения, вы можете посмотреть на установку простого веб-приложения (например, это приложение для поиска по IP на основе django - http://www.coulix.net/blog/2006/aug/17/ip- флаги страны-комментарии-джанго / ). Вы можете найти около $ 90 скидочный код Dreamhost (чтобы вы могли работать на реальном веб-сервере), и попытаться настроить вещи. Не слишком беспокоиться о безопасности или производительности (но делают использование SSH) - это просто проект обучения.
Если вы хотите делать что-то на рабочем столе, вы можете взглянуть на Pygame.
источник
Вы можете прочитать все о программировании, но вы не научитесь действительно программировать, пока не начнете хорошо .. начинать программировать!
Я бы порекомендовал вам начать личный проект. Что ты хочешь создать? игра? Блог? Это не важно Просто сделай что-нибудь!
Затем, после некоторого реального программирования (несколько недель или месяцев), я рекомендую попробовать внести свой вклад в проекты с открытым исходным кодом. Персональный проект помогает вам понять, как программировать, когда цель еще не поставлена перед вами (знание того, как на самом деле спроектировать что-то, не часто преподается в школе). Вклад в существующие проекты научит вас работать в команде и следовать стандартам кода.
Я бы не стал тратить время на чтение всего остального. Я бы сказал, самое большее, что вы, вероятно, должны читать около 20% времени и писать код для остальных 80%. (конечно, под временем я имею в виду ваше время, отведенное для программирования связанных вещей)
источник
Ну, вот мои два цента ... в сочетании с цитатами из нескольких других источников.
Это проблема, которую я видел много, вплоть до того, что люди с многолетним «опытом» в своем резюме не могли выполнять простые задачи. Лично я думаю, что образовательные институты несут большую ответственность за это, начиная с факультета, который не знает предмета или не может преподавать его советникам, которые должны руководить студентами, которые хотят получить информацию только за деньги без разумный интерес к самой области.
Судя по твоему вопросу, ты уезжаешь из колледжа, чувствуя себя так, словно тебя просто потянули за несколько лет твоей жизни, чтобы получить лист бумаги. Именно так многие агентства по найму считают в наши дни диплом программистов. Им нужны люди, которые доказали, что умеют программировать, а не просто те, у кого есть лист бумаги. Но тот факт, что вы в первую очередь задаете этот вопрос, показывает мне желание научиться программировать.
Одна из лучших вещей, которую вы можете сделать, чтобы учиться, уже упоминалась несколько раз, это программирование. К сожалению, хотя это абсолютно увеличит ваши знания и понимание технологии, маловероятно, что она поможет вам найти работу, если вы не сможете добавить это в свое резюме.
Я предлагаю вам начать с создания нескольких приложений с определенной целью, выяснить, что вы можете сделать и что заставит вас двигаться вперед, а затем отправиться в некоторые места, где вы можете получить работу фрилансера. Не ожидайте, что вам заплатят огромную сумму за внештатную работу, которую вы получаете в Интернете, вы хотите добавить ее в свое резюме, а не в свой кошелек. Как только у вас есть 3-5 пунктов, на которые вы можете указать и сказать «Я создал это» или «Я разработал эту функциональность для них», перечислите все эти вещи и найдите агентство по найму (они ВЕЗДЕ .. хедхантеры) и работайте с несколькими их сотрудниками, чтобы упорядочить ваше резюме, чтобы оно подчеркивало ваше образование и находчивость в поиске работы, а также сводило к минимуму недостаток опыта.
Самая важная вещь, которую нужно помнить, когда вы разговариваете с потенциальными работодателями (я вижу, что люди все время портятся), и то, на что должен обратить внимание ЛЮБОЙ В ЛЮБОМ ПОЛЕ, это то, что вы абсолютно не хотите продавать себя коротко. или свести к минимуму то, что вы МОЖЕТЕ сделать, не ЗАБЫВАЙТЕ сами и заставьте их поверить, что вы можете делать то, что не знаете, как. Работодатели всегда умеют просить вас делать то, что вы не знаете, как это сделать, и в этот момент ваша задача - выяснить это, но если вы скажете им, что уже можете, вы неизбежно съедите свои слова позже ,
Удачи тебе!
источник