Подтвердить что ты не робот

Стать профессиональным программистом/инженером-программистом

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

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

Я отлично разбираюсь в компьютерах. Я могу разобраться и вернуть его вместе с закрытыми глазами. Я сертифицирован A + и Network +, и перед тем, как выйти, я получаю пару других сертификатов CompTIA. Я могу работать как с Windows, так и с людьми на этой планете, и я не страшен с Linux. Работа на компьютерах - это то, что я всегда хотел.

Но, помимо того, что он компьютерный техник, кажется, что каждая работа в этой области требует возможности программирования. Мне нравится программировать как хобби. Я запрограммировал TI BASIC в старшей школе, и я учу себя Python, но что касается моего опыта. Меня это волнует:

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

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

  • Из того, что я сказал вам о себе, мог бы я быть квалифицированным, чтобы работать в качестве обычного техника (тип отряда geek или, возможно, компьютер для ремонта компьютеров).

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

  • Если вы профессиональный программист, у вас были какие-то страхи?

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

Спасибо, что нашли время, чтобы прочитать все это и ответить (если вы это сделали)

4b9b3361

Ответ 1

первый язык является самым сложным,

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

если я буду проводить следующие восемь месяцев, изучая Python, я в значительной степени смогу получить хотя бы честное знание любого другого языка OO в течение месяца после его изучения или чего-то еще?

Через месяц? Нет. В конце концов? Да.

Как легко выгорать?

Это работа. Насколько легко выгорать на любой работе?

Является ли Python хорошей базой для изучения?

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

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

Облом. После 35 лет программирования я могу только сказать, что ты прав. Все новое плохо, и все, что вы уже знаете, лучше.

Если вы профессиональный программист, у вас были какие-то страхи?

Нет. Ничто из того, что вы упомянули, не имеет большого значения.

Бойтесь преступно ошибочно управляемых компаний, выходящих из бизнеса. Что-то бояться.

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

Вы порекомендовали бы я придерживаться ремонта компьютера и Python, а не пытаться войти в корпоративное программирование?

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

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

Если вы боитесь будущего, вы боитесь самой жизни. Не волнуйся. Создавайте новые навыки как можно быстрее.

Ответ 2

  • Первый язык, безусловно, самый сложный, поскольку вам также необходимо изучить концепции вместе с ним, например массивы, коллекции объектов и поток программ. Второй язык, который вы узнаете, имеет много "О, это похоже на язык один, кроме незначительной разницы"

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

  • Изучив A + и Network +, я бы сказал, что у вас есть навыки для запуска ремонтной мастерской или для общего специалиста ПК.

  • Я еще не изучил python (я планирую в ближайшее время), но из того, что я прочитал об этом, это мощный объектно-ориентированный язык с множеством современных функций. Поэтому я ожидаю, что это будет достойный старт. Я лично начал с Java в 90-х годах, позже узнал C/С++. Я думаю, что изучение одного из Java, С# или С++ (без определенного порядка) важно как программист, просто потому, что в настоящее время это самые популярные языки.

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

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

Мой опыт: Я - главный научный сотрудник по компьютерной инженерии в университете Ватерлоо в последний раз. Сейчас я на последних этапах интервью с Google и Amazon. У меня был эквивалент 2 лет на стажировках в RIM и Sybase и нескольких других компаниях-разработчиках.

Ответ 3

Питер Норвиг, руководитель исследования в Google, имеет отличную должность в качестве профессионала:

http://norvig.com/21-days.html

Вот несколько основных моментов его статьи (прямая цитата, слова Питера):

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

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

  • Программа. Лучший вид обучения - это обучение. Если говорить более технически, "максимальный уровень производительности для отдельных лиц в данном домене не достигается автоматически в зависимости от расширенного опыта, но уровень производительности может быть увеличен даже опытными людьми в результате целенаправленных усилий по улучшению". (стр. 366), и "для наиболее эффективного обучения требуется четко определенная задача с соответствующим уровнем сложности для конкретного человека, информативная обратная связь и возможности повторения и исправления ошибок". (стр. 20-21) Книга "Познание на практике: разум, математика и культура в повседневной жизни" - интересная ссылка для этой точки зрения.

  • Если вы хотите, поместите четыре года в колледж (или больше в аспирантуру). Это даст вам доступ к некоторым заданиям, требующим учетных данных, и это даст вам более глубокое понимание области, но если вы не любите школу, вы можете (с некоторой преданностью) получить аналогичный опыт на работе. В любом случае, одного книжного обучения недостаточно. "Образование в области компьютерных наук не может сделать никого более опытным программистом, чем изучение кистей, а пигмент может сделать кого-то экспертом-живописцем", - говорит Эрик Раймонд, автор The New Hacker Dictionary. Один из лучших программистов, которых я когда-либо нанимал, имел только высшее образование; он создал много отличного программного обеспечения, имеет собственную группу новостей и сделал достаточно возможностей для покупки своего ночного клуба.

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

  • Работа над проектами после других программистов. Будьте вовлечены в понимание программы, написанной кем-то другим. Посмотрите, что нужно, чтобы понять и исправить это, когда нет оригинальных программистов. Подумайте о том, как разработать свои программы, чтобы облегчить тем, кто будет поддерживать их после вас.

  • Изучите, по крайней мере, полдюжины языков программирования. Включите один язык, поддерживающий абстракции класса (например, Java или С++), поддерживающий функциональную абстракцию (например, Lisp или ML), поддерживающий синтаксическую абстракцию (например, Lisp)), поддерживающий декларативные спецификации (например, Prolog или С++ шаблоны), поддерживающий сопрограммы (например, Icon или Scheme), и тот, который поддерживает parallelism (например, Sisal).

  • Помните, что в "информатике" есть "компьютер". Знайте, сколько времени требуется компьютеру для выполнения команды, извлечение слова из памяти (с пропуском кеша и без него), чтение последовательных слов с диска и поиск нового места на диске. (Ответы здесь.)

Ответ 4

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

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

Что касается Python, это приемлемый первый язык, и его нельзя чихать. Для полноты вам будет интересно узнать Assembly/C/С#/(один из F #, Haskell, a Lisp) к моменту начала поиска работы.

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

Компьютеры всегда нуждаются в фиксации. Вы можете найти нишу в мире IT/IS с высококвалифицированной системой поддержки больше, чем ваши текущие навыки. (www.serverfault.com - хорошее место, чтобы взглянуть на эту часть света).

изменить:

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

Ответ 5

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

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

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

Ответ 6

  • Да. После этого вы узнаете новые языки. Вы можете узнать свой второй язык за месяц или около того, , если у вас есть интересная задача сделать на этом языке программирования, иначе вы могли бы потратить годы и просто не получать (мой личный опыт).

  • Относится к каждому человеку и с возрастом.:)

  • Yeap, но я (субъективно говоря) попытался бы попасть в мир программирования вместо

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

  • И многие другие

  • goto мой ответ на 3

Добро пожаловать

Ответ 7

  • Изучение любого языка помогает в выборе последующих языков, но каждый из них имеет свои преимущества и недостатки, которые потребуют времени для поиска. Лучшее, что вы можете сделать, это попытаться забрать столько опыта на столько языков, сколько сможете. Вы, конечно, сгорите, если у вас нет цели для изучения каждого, поэтому не принимайте по двадцать одновременно, и каждый из вас учится, чтобы убедиться, что есть причина этого (например, изучение JavaScript, чтобы вы могли разработать AJAX-based веб-страницы.)
  • Толерантность к выгоранию напрямую связана с тем, насколько вы мотивированы для проекта, над которым работаете, и своей стойкости в кишечнике, проваливаясь мимо тех частей проекта, которые вам не интересны. Я нахожусь на этих последних этапах, я инстинктивно принимаю проекты домашних животных, чтобы не допустить, чтобы от скуки до смерти, что определенно помогает.
  • Я бы предположил, что вы квалифицированы, но эти карьеры несколько не связаны с разработкой программного обеспечения. Моя рекомендация заключалась бы в том, чтобы попытаться найти работу начального уровня, которая фактически включает в себя программирование; если вам нравится компьютерная наука, я думаю, вы найдете ее намного более удовлетворительной в целом.
  • Я начал работать в BASIC, затем быстро перешел на C и С++, а затем разветкил все, что мне нужно, чтобы научиться выполнять работу. Мое предложение (несколько связанное с ответом № 1) заключается в том, что где бы вы ни начинали, вы продолжаете идти. Не говорите так: "судите язык по обложке"; скорее изучите его для себя и сделайте собственные выводы о том, насколько вам нравится/презирать его.
  • Никаких реальных страхов; правда в том, что компании любят находить, нанимать и удерживать лучших разработчиков. Пока вы любите разработку программного обеспечения, это отразится на том, что вы производите, что будет замечено кем-то, желающим нанять.
  • Я бы попробовал поэтапный подход. Начните собственный проект любимого, изучите Python, получите удобство программирования и посмотрите, насколько вам это нравится. Я думаю, что лучший человек, который может ответить на вопрос, который вы поставили здесь, - это вы сами; начните с малого, и если вам это нравится, получите немного больше. Оттуда отступайте или продвигайтесь, пока не убедитесь, что один трек или другой, где лежат ваши истинные компьютерные страсти.

Ответ 8

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

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

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

4) Я не эксперт по python, но знаю немного. У каждого языка есть свои нюансы, а python ничем не отличается. Я думаю, что его разумный выбор для обучения программированию и быть экспертом в этом поможет вам хорошо изучить другие объектно-ориентированные языки. Если карьера в программировании - это то, что вы серьезно рассматриваете, то Java или С# могут быть более эффективными, поскольку это два самых распространенных языка, используемых в корпоративном мире. Они также очень близки и синтаксически.

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

6) Ну, правильно ли программирование? Это только для вас, чтобы ответить, но некоторые вопросы, которые вы могли бы подумать: вам нравится программировать больше, чем аппаратное обеспечение? Существуют ли другие способы использования ваших аппаратных талантов, кроме ремонта? Например, вам понравится электротехника (где вы могли бы одновременно использовать как свои аппаратные таланты, так и основные навыки программирования)?

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

Отличные вопросы и удачи в вашем поиске.

Ответ 9

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

Теперь на мой вклад.

1) Вы хотите начать со структурированного языка, который предоставляет бесплатные инструменты. На мой взгляд, Java - хороший. Если вы хотите сделать карьеру из этого, и это звучит так, как вы, то степень является большим плюсом. У меня нет опыта Python, но по моему опыту он обычно не считается хорошим языком обучения.

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

3) Отряд Geek - это не то, что касается разработки программного обеспечения.

4) По-моему... Я бы начал с Java.

5) Нет. Я перешел с Pascal на C/С++ на Java на Flex. Для людей с открытым умом и гибкостью есть возможности в этой области. Самый большой страх, который испытывают большинство разработчиков, - оффшор. Определенно, факт жизни и большинство разочарований вокруг моей карьеры полностью за пределами реального кодирования. Это процесс и то, как он работает с бизнесом, который обычно приносит наибольшую боль.

6) Найдите свою страсть и следуйте за ней. Это дает вам большой шанс на успех, на мой взгляд. Ох... и будь реалистом. Я хотел играть в бейсбол, но для меня это было нереально.

Ответ 10

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

Я сам разработчик программного обеспечения, и я могу понять обаяние! Python - хороший язык для изучения - он относительно прост в освоении, и вы можете быстро стать полезным. Если вы хотите быстро стать опытным разработчиком, я бы посоветовал научиться чему-то значительно сложнее для вашего следующего языка - C, а затем С++. Они намного ниже, чем Python, они меньше работают для вас. Это делает вас менее производительным изначально, но это означает, что они работают намного быстрее. С точки зрения обучения, они заставят вас больше узнать о том, как компьютеры фактически запускают программы, что сделает вас лучшим программистом.

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

Удачи!

Ответ 11

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

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

3) Абсолютно, вы готовы.

4) Да, просто хорошо, что вы изучаете объектно-ориентированный язык. Большинство открытий работы я вижу для .NET или Java-разработчиков... и объектно-ориентированных языков.

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

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

Ответ 12

Уже есть некоторые разумные ответы. Вместо того, чтобы повторять их, я просто хочу отметить, что хорошая компьютерная наука откроет вам множество разных тем. Было бы здорово, если бы вы могли найти онлайн-программу, имеющую аккредитацию CSAB, поскольку стандарты, которые они устанавливают для того, что должно быть включено, являются очень разумными. Изучение python по-своему - отличное начало, но есть много тем, которые вы, возможно, не думаете, чтобы самостоятельно учиться, которые являются ключом к тому, чтобы стать действительно хорошо продуманным разработчиком, например:
Компьютерная организация
Операционные системы
Численный анализ
Анализ алгоритмов
и т.д.

Ответ 13

  • Как сказал кто-то, первое что-то сложно. Программирование ничем не отличается, и для вас может потребоваться некоторое время, чтобы обернуть вокруг себя голову. Вещи медленно нажимают на место, хотя.
  • Не могу ответить на этот вопрос.
  • Скорее всего. Работа в армии наверняка хорошо смотрится в резюме.
  • Я ненавижу это, потому что как только вы смотрите на другой код, это делает вас barf. Узнайте что-то вроде С#.
  • N/A
  • Мне кажется, что лучше исправить компьютеры. Я предполагаю, что вы можете программировать как хобби, а затем стать разработчиком, но это требует времени.