Становление профессиональным программистом / [закрытый] разработчик программного обеспечения

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

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

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

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

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

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

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

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

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

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

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

36
задан Kefka 15 April 2010 в 21:03
поделиться

13 ответов

первый язык самый трудный,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

23
ответ дан 27 November 2019 в 06:05
поделиться
  1. Первый язык, безусловно, самый сложный, поскольку вместе с ним вам также необходимо изучить такие концепции, как массивы, коллекции объектов и последовательность выполнения программы. На втором языке, который вы изучаете, много фраз: «О, это похоже на то, что от первого языка, за исключением небольшого различия»

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

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

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

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

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

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

5
ответ дан 27 November 2019 в 06:05
поделиться

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

1
ответ дан 27 November 2019 в 06:05
поделиться

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

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

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

3
ответ дан 27 November 2019 в 06:05
поделиться
  1. Да. После этого вы легко выучите новые языки. Вы можете выучить второй язык примерно за месяц, если у вас есть какое-нибудь интересное задание на этом языке программирования, иначе вы могли бы потратить годы и просто не получить его (это мой личный опыт).

  2. Зависит от каждого человека и с возрастом. :)

  3. Да, но я (субъективно говоря) вместо этого попытался бы попасть в мир программирования

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

  5. И многие другие

  6. goto мой ответ на 3

Пожалуйста,

2
ответ дан 27 November 2019 в 06:05
поделиться

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

Теперь о моих комментариях.

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

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

3) Разработка программного обеспечения - это не команда компьютерщиков.

4) На мой взгляд .. Я бы начал с Java.

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

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

2
ответ дан 27 November 2019 в 06:05
поделиться
  1. Как кто-то сказал, сначала что-нибудь сложно. Программирование ничем не отличается, и вам может потребоваться время, чтобы осмыслить его. Однако все медленно встает на свои места.
  2. Не могу ответить на этот вопрос
  3. Скорее всего. Работа в армии хорошо смотрится в резюме.
  4. Я ненавижу это, потому что, когда вы смотрите на другой код, он заставляет вас нервничать. Изучите что-нибудь вроде C #.
  5. Н / Д
  6. Мне кажется, вы бы предпочли починить компьютеры. Думаю, вы могли бы программировать в качестве хобби, а позже стать разработчиком, но для этого нужно время.
0
ответ дан 27 November 2019 в 06:05
поделиться

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

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

3) Похоже, что вы достаточно квалифицированы для выполнения такой работы. Однако более уместный вопрос: это то, чем вы хотите заниматься?

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

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

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

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

Замечательные вопросы, желаю удачи в поисках.

2
ответ дан 27 November 2019 в 06:05
поделиться
  1. Изучение любого языка помогает в изучении последующих языков, но у каждого из них есть свои преимущества и недостатки, на изучение которых потребуется время. Лучшее , что вы можете сделать, - это попытаться получить как можно больше опыта на как можно большем количестве языков. Вы наверняка сгорите, если у вас нет цели изучить каждый из них, поэтому не беритесь сразу за двадцать, и с каждым изучаемым убедитесь, что есть причина для этого (например, изучение JavaScript, чтобы вы могли разработать основанный на AJAX страница в Интернете.)
  2. Ваша терпимость к выгоранию напрямую связана с тем, насколько вы мотивированы для проекта, над которым работаете, и с вашей внутренней стойкостью в преодолении тех частей проекта, которые вам не так интересны. Я обнаружил, что на этих последних этапах я инстинктивно беру домашние проекты, чтобы не скучать до смерти, что определенно помогает.
  3. Я полагаю, вы квалифицированы, но эта карьера в некоторой степени не связана с разработкой программных приложений. Я бы порекомендовал попытаться найти работу начального уровня, которая действительно связана с программированием; Если вам нравится компьютерная наука, я думаю, вы найдете ее в целом гораздо более удовлетворительной.
  4. Я начал с BASIC, затем быстро перешел на C и C ++, а затем занялся всем, что мне нужно, чтобы научиться выполнять свою работу. Мое предложение (отчасти связанное с ответом №1) состоит в том, что где бы вы ни начали, вы продолжайте . Не «судите о языке по его оболочке», так сказать; лучше узнайте это для себя и сделайте собственные выводы о том, насколько вы это любите / презираете.
  5. Никаких реальных страхов; правда в том, что компании любят находить, нанимать и удерживать лучших разработчиков. Если вы любите разработку программного обеспечения, это отразится на том, что вы создаете, и это будет замечено кем-то, кто хочет нанять.
  6. Я бы попробовал поэтапный подход. Начните собственный проект, изучите Python, освоите программирование и посмотрите, насколько он вам понравится. Я думаю, что лучший человек, который может ответить на вопрос, который вы здесь задали, - это вы сами; Начните с малого, а если вам это нравится, станьте немного больше.Оттуда отступайте или продвигайтесь, пока не будете уверены, что тот или иной трек - это то, где лежат ваши настоящие компьютерные страсти.
2
ответ дан 27 November 2019 в 06:05
поделиться

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

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

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

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

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

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

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

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

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

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

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

5
ответ дан 27 November 2019 в 06:05
поделиться

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

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

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

Удачи!

1
ответ дан 27 November 2019 в 06:05
поделиться

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

Первый язык ошеломляет и разочаровывает, второй язык заново учат думать, третий язык довольно тривиален.

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

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

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

править:

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

3
ответ дан 27 November 2019 в 06:05
поделиться

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

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

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

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

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

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

1
ответ дан 27 November 2019 в 06:05
поделиться