Добрый день, уважаемое сообщество.
Замечу сразу, что вопрос скорее к программистам — но мнение людей других профессий тоже будет мне интересно.
Скажите пожалуйста, кем бы вы хотели быть?
Конечно, это не как в школе — добавим немного конкретики. Подавляющее большинство из вас, скорее всего, если не является профессионалами в своей области (в данном случае — программировании), то по крайней мере обладают опытом в какой-то конкретной области (или языке программирования). И скорее всего этот опыт больше моего (пара месяцев как устроился на первую работу).
Так вот, к сути вопроса — если бы вы знали о текущих перспективах языков, об их нынешнем состоянии и развитии, об их областях применения — на каком языке вы хотели бы писать?
Не «учиться программировать», а именно быть специалистом по конкретному языку (ну, или нескольким языкам, которым вы отдадите предпочтение).
В ответе прошу указать текущие языки, с которыми приходится работать чаще всего, опыт программирования на этих языках — ну и ваши желания, желательно с объяснением причины.
Начну с себя:
Студент, PHP-программист.Опыт работы с PHP — 1.5 года. Второй язык, с которым знаком чуть дольше (но, к сожалению, от этого не ближе) — Java.
Хотел бы (и надеюсь что ещё успею, до того как заработок будет важнее желаний) изучить ассамблер (считаю это очень важным для понимания принципов работы приложений, тем более что в планах и мечтах — работа в сфере информационной безопасности), а так же один из функциональных языков программирования (скорее Lisp) — нравится лаконичность этого класса языков, и их «альтернативность» логики по сравнению с императивными языками, знакомство с которыми произошло долгих (для меня) 6-7 лет назад. По сравнению с теми же Java, C#, PHP логика ФЯП кажется не столь распространенной и приевшийся.
Да, он тоже рассматривался как вариант — но меня безумно радует факт написание эмоционального кода со скобочками. Тем более опыт знакомства с lisp у меня был на протяжении полугода в рамках обучения (так же как и Haskell, но второй меня совсем не привлекает)
Возможно, мой вопрос выглядит как поиск совета в дальнейшем развитии. Но я надеялся услышать тут желания людей, более опытных нежели я. Кого-то устраивает то, с чем они работают. Кого-то нет, и хотелось бы изменений. Об этом мне и хотелось бы услышать.
Начинающие программисты всегда ищут идеальный язык программирования. Но в итоге понимают или не понимают (что чаще происходит), что дело не в языке, а в представлении и понимании алгоритмов работы программы и её взаимодействия с областью приложения.
Или скажу проще «Неважно какая у тебя машина — BNW или Запорожец. Если не умеешь водить, то никуда не уедешь.»
Не думаю что имеет смысл говорить об идеальном языке — это действительно зависит от того, как ты используешь его возможности.
Но ведь есть какие-то личные предпочтения, наверное — в зависимости от склада ума, мышления. Симпатии к какой-то мелочи, вроде названия языка, в конце концов.
Есть и более серьезные критерии — востребованность, порог входа, типы приложений, которые на нём пишут, конкуренция предложения на рынке.
Вот для меня это «альтернативность» логики и скобочки. По крайней мере, сейчас.
Работая программистом 5 лет всё больше понимаю что лучше бы я был плотником… класть плитку в нашей стране не менее прибыльно чем писать Java Enterprise Bean'ы… А пользы куда больше, подработок всегда будет хватать и дома можно руками всё делать…
Это точно. Я когда работал преподавателем в ПТУ, студенты мне говорили, мол, бросай это дело, иди с нами работать: за 1 выходной на «шабашках» они получали больше, чем я за месяц преподавательской работы!
У меня наоборот. Пять лет занимался строительством, был бригадиром, хорошие деньги, неплохой график. А потом почувствовал, что это не перспективно. Кем я буду через 10 лет? Темже строителем, ну можеть, стану прорабом. Плюс здоровье уже не то будет. Поэтому я бросил всё и пошел сначала в учителя, а потом в программисты.
А Вы думаете, что нет конкуренции в строительстве?
Я лично неоднократно сталкивался с тем, что строительный проект уводили из под носа более «молодые» бригадиры за более низкую оплату. Конкурировать на таком рынке гораздо тяжелее, чем кажется.
Чем больше ЯП сумеете изучить, тем лучше. Ассемблер это очень правильно и хорошо, но в 99% случаев это тупиковая ветвь с точки зрения основной деятельности. Я бы уделил больше внимание так сказать текущему мейнстриму — C/С++, JavaScript, Erlang, SQL (MySQL или PostgreSQL), NoSQL. Обязательно познакомьтесь с UNIX, рекомендую два-три раза «собрать-разобрать» свой дистрибутив по инструкциям LinuxFromScratch. Соберите из исходников и настройте Apach, Nginx, MySQL на разных платформах. Чем больше технологий освоите, тем лучше.
PS. И постоянно читайте на английском языке — без этого никуда.
Касательно юникса — на протяжении 5 лет пользуюсь линуксом, пробовал почти всё (от ubuntu до gentoo). Вы говорите правильные вещи, то к чему стоит стремиться — но здесь же можно немного помечтать и поговорить и своих желаниях=)
А я хочу стать программистом :3 И не важно каким, мне без разницы. Мне просто нравится придумывать код, писать его и смотреть как он работает. Но без корочки (и некоторых знаний, которые дают в универе) никуда не деться, так что приходится быдлокодить лишь для души.
П.С. Учусь не на компьютерной специальности, возможно пойду на вторую вышку. Увлекаюсь программированием с 9 класса, выучил его сам.
> Но без корочки
Ошибаетесь. Нормальные компании на корочки не смотрят, здесь имеет значение только опыт.
> и некоторых знаний, которые дают в универе
И вы в это верите? Что там будет хоть что-то, чего нельзя узнать самостоятельно? Люди, интересующиеся темой, на парах рассказывают преподавателям об этой теме, а не наоборот.
Хорошо, а как тогда понять, что нужно знать? У меня есть какие то знания, если их не хватает — Google и они появляются. Но где найти хотя бы список того, что нужно знать?:)
П.С. если посмотреть вакансии, всем нужны хотя бы студенты старших курсов, или уже с корочкой.
Ставите себе какую-нибудь задачу, реализовываете. В процессе вы уже знаете, где у вас пробелы знаний. Соответственно этому подбираете книгу и читаете. Если пробела не нашли и задача решена — выбираете любую книгу из пожеланий «обязательно к прочтения» и читаете. Например: habrahabr.ru/post/135897/
Точного списка знаний быть не может. Программирование охватывает слишком много областей, чтобы познать все. Пробуйте всё подряд, что понравилось — углубляйтесь, останавливайтесь и закапывайтесь с головой в практику в этой области или же ищите дальше.
Мне нравится веб-программирование и я не понимаю, какие могут быть трудности в базе данных на пару десятков миллионов записей. Но я совершенно не знаю какое-нибудь там winAPI.
Вы тоже из Питера, так что я гарантирую, найти отличную работу программистом без корочки вуза — проблемы не составляет. Отправляйте резюме, сходите на пару собеседований — это очень быстро поможет если не найти работу, то понять, в каких областях пробелы.
Увлекаясь этим с 9-го класса вы уже точно должны знать одну или несколько областей, где вам нравится.
Знал бы в детстве, чем буду заниматься, больше внимания уделял бы электронике и математике. Да и начал бы сразу с С, без всех этих дурацких бейсиков и паскалей.
// И сразу бы ставил на компьютер линукс, не тратя пару лет на мучения с мастдайкой.
Студент (2 курс магистратуры), стажер в небольшой компании в области цифровой обработки сигналов.
Программист: С++(lib: STL,OpenCV,Qt, часть Boost) — 3 года, Wolfram Mathematica — 1 год, Perl — полгода, несколько лет назад писал на C#. Могу XSLT, Shell(Bash), Make. Дружу с Linux. Есть базовые знания связанные с цифровой обработкой сигналов. Область интересов: теоретическая информатика, математика, философия.
Хотел бы стать докой в машинном обучении, разобраться с такой областью как «решение некорректно поставленных задач», получше разобраться с адаптивной и нелинейной фильтрацией.
Хочу поступить в аспирантуру, чтобы реализовать часть своих хотелок в рамках исследования. Работать в университете и/или организации, которая занимается R&D.
Для себя, хотел бы познакомиться с языками R и matlab.
Первый — может быть полезным в работе, а второй является достаточно популярным в исследовательской среде, и не знать его, ИМХО, моветон.
Так же хотел бы познакомиться с «непривычными» моделями вычислений и разобраться с ФП(Haskell), Рефал и Forth.
Читая ваш комментарий, не покидала мысль что это копипаст с вашего резюме. Не думал что ответ так будет на него похож, но это и неплохо, наверное. Спасибо.
Нет не резюме, так вышло. Считаю полуправдой приводить наименования языка, не указывая ту часть его окружения, с которой знаком, потому библиотеки расписал. И тулы тоже какие-никакие ЯП предоставляют.
Я вроде бы большой список желаний/хотелок привел (правда некоторые неуместно). Сформирован он по правилу «изучать новые концепции/парадигмы».
А я вот вообще, когда то говорил что программировать не буду. и да, около 16 лет админил винду. в 2005 добавился линукс.
последние два года — bash, powerhell.c# (desktop, web).
вспоминая Ленинское "«сколько языков ты знаешь, столько раз ты человек» могу сказать только одно — любой ЯП, ОС или железка — это инструмент. банальный инструмент для решения задач. Если мне понадобится домен — я выберу Windows, если мне понадобится IP АТС или прокси — я выберу линукс. если мне понадобится сайт, я либо выберу lamp и вордпресс/джумлу/вики, либо разверну нечто на MS IIS + sharepoint/asp.net. А если мне понадобится аналитика — я возьму или ексель или еще какое средство для диаграмм.
Надо просто понять что есть задачи, а есть инструменты, и не стоит применять гвоздь для вырезания…
в 2008 году закончил прикладную математику и информатику. (синяя рожа, красный диплом)
Работаю программистом, кодить приходится на целом зоопарке языков. Отчасти оттого, что старый софт работает 24/7. Изменений много, примерно с 03 года программы введены. Уфф… ладно.
Кем хотел бы быть… мне всегда нравился Си. (плюсы тоже). Я неплохо (хотелось бы так думать =) ) кодю на асме под х86. и самое главное во всех этих словах — мне это нравится. Я не знаю как описать все это, но именно Си (дада, и с плюсами тоже) с асмом близки мне по духу…
Начинал (наверное можно уже так сказать) классически с паскаля в 9м классе, потом ассемблер в 10м, си, ну и в универе поехали…
Последнее время появилось желание покодить микроконтроллеры, но пока руки не доходят. Тут же мне си с асмом и помогут.
PS: хотелось чтобы Вы помнили, что на чем кодить — вам со временем станет абсолютно пофигу (за исключением психологичечкой тяги к чем-то конкретному). Понадобится — за 2 недели новый синтаксис поднимете. Программистом Вас делают знание технологий, алгоритмов, протоколов и т.п. А язык — он же инструмент для конкретных задач. Наверное, можно перефразировать Ваш вопрос «Какие задачи вы хотели бы решать?» 8) Хотя да, некоторые языки весьма многозадачны…
PPS: ассемблер… Он божественен =) Начните обязательно. Вы верно про него думаете =) Стучите в личку, подскажу как поменьше граблей собрать в начале.