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


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

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

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

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

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

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

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

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

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

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

13 35

13 ответов:

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

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

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

Месяц? № В конце концов? Да.

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

Это работа. Как легко ли сгореть на любой работе?

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

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

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

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

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

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

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

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

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

Опять же, это не имеет значения. Через 30 лет ничего из этого не будет существовать, и мы все будем программировать на языках, которые еще не были изобретены, на пользовательских интерфейсах, которые даже не существуют в фильмах. Когда я начинал, мы пробивали наши программы на бумажных карточках. Действительно. Если вы боитесь будущего, вы боитесь самой жизни. Не беспокойся. Создавайте новые навыки как можно быстрее.
  1. Первый язык, безусловно, самый сложный, так как вам также нужно изучить понятия, такие как массивы, коллекции объектов и поток программ. Второй язык, который вы изучаете, имеет много "о, это похоже на язык один, за исключением незначительных различий"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Правка:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4) я не специалист по питону, но кое-что знаю. Каждый язык имеет свои нюансы, и python ничем не отличается. Я думаю, что это разумный выбор для обучения программированию и быть экспертом в нем будет хорошо настроить вас на изучение других объектно-ориентированных языков. Если вы серьезно рассматриваете карьеру в программировании, то Java или C# могут быть лучшим выбором, как это есть два наиболее распространенных языка, используемых в корпоративном мире. Они также очень близки синтаксически. 5) будучи младшим программистом, я действительно беспокоился о выгорании и "является ли это правильным выбором карьеры", но это не продлилось долго, поскольку я понял, что люблю программирование и что само богатство вещей, которые нужно изучать и применять, делает меня счастливым и занятым. Конечно, у меня бывают паршивые дни на работе, когда я полностью устаю от того, над чем я сейчас работаю, но это редко, и я действительно оцените все разнообразные возможности и проблемы, которые приходят с тем, чтобы быть программистом. [0]}6) ну, а программирование вам подходит? Это только для вас, чтобы ответить, но некоторые вопросы, которые вы, возможно, захотите подумать: вы любите Программирование больше, чем аппаратное обеспечение? Есть ли другие способы использовать ваши аппаратные таланты, кроме ремонта? Например, понравится ли вам электротехника (где вы можете использовать как свои аппаратные таланты, так и базовые навыки программирования одновременно)?

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

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

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

Теперь перейдем к моему входу.

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

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

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

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

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

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

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

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

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

Удачи!

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

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

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

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

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

  1. Как кто-то сказал, Первое что угодно трудно. Программирование ничем не отличается, и вам может потребоваться некоторое время, чтобы осознать это. Однако все медленно встает на свои места.
  2. не могу ответить на этот вопрос
  3. скорее всего. Работа в армии очень хорошо смотрится в резюме.
  4. Я ненавижу это, потому что, как только вы смотрите на другой код, он заставляет вас блевать. Выучите что-нибудь вроде C#.
  5. N / A
  6. Мне кажется, ты предпочитаешь чинить компьютеры. Я думаю, вы могли бы запрограммировать как хобби и позже стать разработчиком, но это требует времени.