ИнтернетПрограммирование

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

Сегодня я получаю отличную работу за 2 года.

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

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

Метод к безумию?

сумасшедший

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

Но речь идет не об одном совете (например, «переходите с JavaScript»), а о методологии, которую теоретически люди могли бы использовать через два года с сегодняшнего дня. Как на самом деле выяснить, какие языки находятся на подъеме? Каким показателям популярности кода доверять, а каким — не доверять (и почему)? Каковы лучшие сайты прогнозирования заработной платы? Является ли GitHub показанием или нет?

Например, в наши дни вы не найдете никого нуждающимся в PHP — но многие разработчики хорошо зарабатывают на PHP, и это все еще большая часть того, что работает в Интернете. Значит, изучение PHP сейчас плохая идея? (Наверное…)

Там нет одного языка

выбор

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

Программисты обычно не изучают ни одного языка. Любой, кто идет по классическому маршруту CompSci, в конечном итоге получит много Java, немного Haskell, немного Prolog, если они пройдут курс по искусственному интеллекту, и Node, если они пройдут курс по проектированию при запуске, немного PHP, если они изучат традиционный CMS, немного .NET, если они стажируются в каком-то бесполезном корпоративном офисе, немного JavaScript, если они занимаются веб-дизайном, немного C ++, если они занимаются игровым дизайном, и, наконец, немного Ruby, если они хотят тратить свою жизнь на непонятные языки, которые никто на самом деле использует.

Нет «методологии», и вы не выбираете язык для изучения: он выбирает вас!

Изучать один язык — все равно что есть только дижестивы в течение года, когда есть целый ряд печенья. А если серьезно, кто выбирает работу в соответствии с прогнозируемой зарплатой?

Но что, если вы не изучите CompSci?

Я ответил Джеймсу, сказав:

Вот в чем дело: это не для тех, кто выбирает классический маршрут CompSci. Судя по взрыву MOOC и количеству онлайн-курсов по программированию, многие люди начинают программировать с нуля. И когда вы начинаете так, вам нужен один язык для начала. Возможно, позже вы отойдете от этого, но этот родной язык станет критически важным вложением времени и усилий — так что оно того стоит.

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

Когда дело доходит до этого, люди пытаются выяснить, с какого языка начинать, и использование этого языка в реальном мире имеет вес в этом решении (не только как легко учиться — Паскаль …).

Сначала выберите проект, а затем язык

простирания-проекты

Джеймс вернулся с этим:

Хорошо, возможно, один из пунктов этой методологии должен быть: не иметь методологии. Когда я впервые столкнулся с PHP, это было через WordPress. У меня был опыт работы в CompSci по программированию и некоторый опыт веб-дизайна, но я никогда раньше не видел PHP. Я узнал это, потому что WordPress выглядел достаточно просто, и я хотел возиться с WordPress. Не потому, что я посмотрел на список трендовых технологий или рассматривал возможность карьерного роста, а потому, что кое-что крутое, что я хотел знать об этом, использовал.

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

Еще одна причина выбрать проект первым

Это когда Саймон вступил с некоторыми прагматическими советами:

Прежде всего, это зависит от того, хотите ли вы разрабатывать для Интернета или «стандартного» программного обеспечения.

Для последнего Java довольно хорош:

  • Простой ОО
  • Мультиплатформенность (Linux, Windows, Mac, Android)
  • Синтаксис похож на многие другие языки программирования (JS, C #).

Не могу много сказать о веб-разработке, хотя HTML / JS / CSS / PHP / MySQL, кажется, работает для многих людей. Питон тоже.

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

Получить работу за знание определенного языка похоже на то, как получить работу в качестве PA для знания работы с MS Excel. Если это основная квалификация, вероятно, это будет плохая работа.

Не учите язык: учите дизайн программного обеспечения

программно-дизайн

Консенсус начал формироваться. Брюс Эппер, из известности answers, сказал следующее:

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

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

Основа, на которой вы строите Вопросы: английский или латынь?

Это было, когда Гай вошел, чтобы напомнить нам всем, что язык действительно имеет значение, в некоторой степени:

латынь

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

Питон, кажется, английский сегодня. Все больше и больше я вижу, что Intro CompSci и курсы программирования начинают с Python вместо Java, который казался самым популярным около 10 лет. Вы можете сделать многое из того, что вы хотите сделать с Python.

C ++ — это латынь мира программирования. Если вы изучите его, вы сможете изучить основные принципы множества языков и выучить их легче. Python был бы легкой прогулкой, если вы хорошо разбираетесь в C ++.

Что такое «работа по программированию»?

Теперь настала очередь Мэтью напомнить нам всем, что быть программистом может означать совсем разные вещи для разных людей:

подходить

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

Тебя не слишком смущают льготы, которые бросают сотрудники Startup? Хотите стабильности и достойного пакета вознаграждения, но нет справедливости? Вам нравится носить деловую торжественную одежду? Изучите C #, Java или COBOL. COBOL также имеет то преимущество, что в нем было написано каждое банковское приложение (гипербола, но вы понимаете). Поскольку большинство разработчиков на COBOL либо на пенсии, либо мертвы, существует большой спрос на разработчиков на COBOL с заработной платой в шесть цифр! Однако вы будете работать с огромными, плохо написанными кодами, созданными за несколько десятилетий. Это не весело.

Но что, если безопасность работы не твоя вещь? Хотите работать над интересными продуктами, но готовы ли вы остаться без работы, если бизнес-модель не работает? Я обнаружил, что происходящее (Hacker News) — верный способ узнать языки, используемые стартапами. Когда я проходил стажировку на ранней работе, мы использовали сочетание Go, Python и CoffeeScript. Другие стартапы используют Rails и Groovy и всевозможные неясные фреймворки и языки. Просто выберите один, и вы найдете где-нибудь интересную работу.

Новый код или старый?

Как пишет Брюс, написание нового кода сильно отличается от поддержки существующего приложения:

С вашими комментариями по COBOL вы как бы натолкнулись на другое соображение: хотите ли вы работать над новым кодом или поддерживать чужой код? Это может быть огромным предметом при выборе направления движения. Для небольших проектов поддержание кодовой базы, написанной кем-то другим, может быть не таким уж и плохим, но я видел некоторые разделы кода, где несколько человек смотрели на это часами, спрашивая: «О чем думал этот парень?», Или где оригинал программист использовал какую-то особенность или ошибку в компиляторе (которая могла быть исправлена ​​в текущем компиляторе) для достижения чего-либо.

Что делать, если у вас нет выбора?

Парень вернулся, чтобы напомнить нам всем, что не у всех есть широкий выбор:

выбор

Мэтью поднимает хороший вопрос: « Какую работу по программированию вы хотите? »

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

Что касается определения того, где вы хотите работать, важно определить тип образа жизни, который вы хотите. Затем посмотрите на сообщения от тех компаний, которые соответствуют вашим критериям, и посмотрите, что они ищут в целом. Составление портфеля вещей, похожих на то, что они делают, также может быть очень полезным, особенно если у вас нет формального обучения технологиям, которые они используют. Возможно, вы изучали Java в школе, но они используют C #. Таким образом, вы учите себя C # и делаете несколько программ с ним в качестве доказательства того, что вы знаете, что делаете, и что у вас текучий интеллект.

Ни один простой ответ

Если что-то и показывает это обсуждение, так это то, что простые вопросы не всегда имеют простые ответы. И все же, прочитав мнение каждого, я почувствовал себя намного более информированным — они передумали.

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

Похожие посты
Интернет

Google Store Лучшие предложения

Интернет

Руководство по специальному режиму в сети

Интернет

10 советов по безопасности беспроводной домашней сети

Интернет

САН против НАН