1с или python что учить
Ответ на пост «Супер-недо Junior Python или история о переквалификации»
Прошло достаточно большое количество времени, получилось ли найти работу? В попытках сменить сферу деятельности тоже прошел через это все, но я все проходил через 1С. Сейчас работаю на хорошей работе, где платят и времени свободного много, но эта работа никак не связана с IT, но в начале лета сам взвалил на себя обязанность внедрить один типовой продукт 1С в свою организацию, чем сейчас и занимаюсь. На этом фоне решил посмотреть количество вакансий 1С и Python (смотрел в Питере) и что-то все совсем не радужно для ребят которые хотят в python разработчики, ну нет вакансий для начинающих, то есть вообще 2 вакансии на весь Питер, а для 1С их море ( ну точно не 2). И задаюсь вполне закономерным вопросом, а нужны ли питонисты в России? Сам я очень хочу стать python разработчиком, и уже вроде бы даже взялся за свой первый проект (решил просто повторить то 1С решение, которое внедряю, но на python)
Можно поискать web developer, а не python developer. В описании вакансии на джуна может быть большой список ЯП, включая python, и требуется умение писАть хотя бы на одном из них.
Вакансий достаточно, но нужно определиться в каком направлении хочется работать, например выучить Django/flask и искать уже front end developer.
Если есть знания математики, статистики, это уже data analyst, ML/AI engineer и тп.
В облачные технологии типа AWS cloud architect можно войти с Python без особых проблем.
Список неполный, язык достаточно универсальный, работу найти реально. В отличие от 1C работать можно не только в России. В связи с карантином, многие организации перешли на дистанционку, поэтому не обязательно сужать поиск до Санкт-Петербурга.
Им лучше не знать своих кумиров
Не заметил подвоха
Сообщество не токсичное, токсичны языки
Когда зашел в комменты под любым постом про IT:
Team leader & Junior
Первый день джуном (и последний)
Всем привет, хочу поделиться своим первым опытом на позиции Junior программиста.
Пишет на днях HR: «Мы заинтересовались в вашем резюме, приходите на собеседование». Ну ок, заинтересовались и хорошо. Пришел. Вопросы были общие, немного по технологиям которые я использовал, по ЯП и что делал или умею делать, к слову опыта и пэт-проектов у меня нету. На собеседованиях, до этого, я был от силы пару раз. Длилось оно 45 минут, и оказалось это не так страшно как я думал. Удивительно то что в вакансии было указано только знание алгоритмов, структур данных и ЯП. Ну да ладно. Через пару дней пришел фидбэк и пообщавшись с работодателем я согласился на стажировку/испытательный срок (trainee), которые должны длиться 2-4 недели. А теперь собственно то что меня сподвигло написать данный пост.
Человек который писал проект до меня (а писал это точно не джун) уволен, проект, на сколько я понял, никто кроме него не знает. И весь мой первый день состоял в том что я сидел, читал документацию и читал про эти технологии. К слову документации на весь проект 100 строк и примерно столько же строк комментов в коде, всего кода в проекте 14000 строк. Возможно мне не показалось бы это таким сложным при наличии менторства, но его не было.
Я имею представление о 30% от стэка технологий (который естественно на собеседование никто мне не сообщил). Так что вечером, после этого всего, подумал и решил, что больше туда не вернусь. Действительно ли джуны и стажеры должны заниматься такими вещами или мне просто «повезло»?
Супер-недо Junior Python или история о переквалификации
Итак, доброго вам времени суток, усаживайтесь по удобнее, мы начинаем.
В посте будет описана попытка переквалификации из одной сферы в другую, разобрано что сделано, что находится в работе и какие сложности лично я испытываю в таких условиях.
Сначала будет минутка истории. Представьте самого обычного среднестатистического человека. У него нет высшего образования (бросил/выгнали/нет денег/не сложилось), работает на работе, приходит домой, кормит кошку.
Пьёт пиво по вечерам, ну и потихонечку деградирует как может.
Сначала я пошёл в интернеты и узнал, что такой язык программирования есть (уже маленький успех). Нашёл гайды, мануалы и начал читать. И сразу стоп.
Я начал проходить курс, решать задачи поставленные в нём и иногда проводил супер много времени за этим занятием.
Пройдя первый из курсов мне пришлось взять перерыв. Средства заканчивались, работа которая была найдена отнимала неимоверно много времени, но использовать полученный навыки там было никак нельзя.
Это была моя ОШИБКА НОМЕР 3. Готовясь к смене рабочего профиля, позаботьтесь о том, чтобы у вас была работа, на которой вам хватает денег для того чтобы жить и которая предоставляет достаточное количество свободного времени для изучения нового. Работать 6/1 по 14-16 часов в день явно не то, что вам нужно для самообразования.
Было заработано достаточно средств и я продолжил проходить курсы, приступил к более углублённому курсу в язык, более сложные задачи. Материал начал восприниматься тяжелее. Мозг который уже отвык думать воспринимал всё в штыки. Но «русские не сдаются», так что если не получается, слушаем/читаем/делаем ещё раз. Попутно узнаём, что часто проще найти информацию на английском и перевести, чем шерстить в поисках инфы на русском. Заводим гит и учимся с ним работать.
Сейчас я подхожу к концу изучения второго курса и так как средства скопленные на последней временной работе начинают петь самые грустные, снова пришлось искать работу. Тут было принято решение, что нужно искать оплачиваемые стажировки. И тут началась эпопея с поисками первой стажировки. (Которая продолжается и по сей час). Выбор языка мне приглянулся, но теперь я обратил внимание и на требования рынка.
И тут я думал, что всё. Ну как бы, где человеку входящему в сферу взять столько и сразу. На собеседования меня никто не приглашал. Потом начал шерстить знакомых, может у кого-то что-то есть связанное с вакансиями. Следующей ошибки я не совершил, но был близок.
ОШИБКА НОМЕР 5. Не пренебрегайте знакомствами при поиске работы. Даже если вам неудобно/стыдно, лучше воспользуйтесь возможностью. Так я попал на своё первое интервью.
В следующий раз перед интервью я обязательно выпью валерьяночки, потому-что трясло меня примерно как школьницу при виде Джареда Лето, и тёк я примерно так же (но не там).
На собеседовании я узнал в каких местах у меня есть информационные дыры, чего недодали мне курсы, что нужно залатать. Естественно меня не взяли, но опыт был полезным, за что компании я благодарен.
Наступило сегодня. Завтра собеседование на должность связанную с IT очень косвенно, потому что ждать неделями или месяцами у меня пока нет средств.
Что делать дальше? Пока планируется придумать какой нибудь полезный в быту проект и реализовать его, выложить на гит, закончить текущий курс и начать новый. Ознакомиться с математикой и её использовании в machine learning, пройти курсы по алгоритмизации и искать собеседования в удобное для меня время.
Как выбрать первый язык программирования
Разбираемся, что учить новичку в программировании, даже если ты ничего не понимаешь, а вокруг одни противоречивые мнения.
Разработчики на Python хвалятся тем, как быстро пишут код. Программисты на C++ — что их код очень производительный. Те, кто используют Java, говорят, как важна кроссплатформенность.
И все торопятся друг друга обидеть: Swift — для геев (многие действительно так думают), Python — для малышей, а JavaScript, конечно же, для дураков. Разработчики готовы спорить даже о том, что лучше: табы или пробелы.
В этой статье мы рассмотрим две темы:
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Мой личный опыт
Я начинал с PHP и каждый день видел прогресс: какой-то новый подход, массивы вместо переменных, супермассивы, базы данных и так далее. Освоив PHP на более-менее сносном уровне, я двинулся дальше и приступил к JavaScript. Разобравшись с ним, я попробовал C++, потому что хотел заниматься играми. Скачал учебник, который все рекомендовали, позанимался по нему — и бросил программирование на несколько лет. М-да.
Сейчас я программирую на PHP, JS, Java, Python, C# и C++. С каждым новым языком я постоянно возвращался к основам и узнавал что-то новое о работе компьютера: как устроена память, как работает процессор, какой код будет работать быстро, а какой — нет. И, самое главное — почему. Если бы я сразу начал с C++, то, скорее всего, решил бы, что это не моё — слишком много информации.
Определите, чем вы хотите заниматься
Все эти споры, какой язык круче, бессмысленны, потому что:
Новички ещё слишком мало знают, чтобы понять, что им нужно от языка. Поэтому выбирать нужно не язык, а то, чем вы хотите заниматься. Многие языки в первую очередь затачиваются под решение определённых проблем или под определённые сферы:
Выбрав сферу, выясните, какие языки там используются, и выбирайте из них. Вы можете попробовать выучить несколько разных языков, чтобы определиться, какой вам больше нравится или лучше подходит для конкретной задачи.
Но даже если вы решите выбрать что-то совсем непопулярное — на чём пока не создавали крутые проекты, — это не значит, что вас ждет провал.
Выбор технологии не определяет успеха игры, сайта, приложения и чего угодно ещё.
А вот основные сильные и слабые стороны популярных языков:
Язык | Преимущества | Недостатки |
---|---|---|
С++ | • Высокая производительность • Прямой доступ к памяти • Строгая типизация | • Высокий порог входа • Низкая скорость разработки |
C# | • Строгая типизация • Сборка мусора • Кроссплатформенность • Большое количество синтаксического сахара | • Ориентированность под Windows • Нет возможности создавать кроссплатформенное GUI |
Python | • Высокая скорость разработки • Возможность быстро выучить язык • Широкий спектр применения | • Слабая типизация • Низкая производительность |
JavaScript | • Высокая скорость разработки • Возможность быстро выучить язык | • Непредсказуемость • Слабая типизация |
Java | • Кроссплатформенность • Строгая типизация • Сборка мусора | • Требуется много времени на запуск приложения • Большой объём повторяющегося кода |
PHP | • Большое сообщество • Быстрое развитие | • Слабая типизация • Небезопасный код |
Джоэл Спольски (CEO Stack Overflow) предпочитает C-подобные языки, но всё равно выбирает тот, который лучше справится с конкретной задачей.
Например, если вы хотите создавать игры, то какие? Посмотрите, на каком движке сделаны ваши любимые игры, и начните осваивать его. Если это Unity, то вам нужен C#. Если Unreal Engine 4, то С++.
Нужно ли начинать с простого языка
Если вы, как и я, выбрали геймдев, то перед вами встаёт дилемма: какой из языков выбрать. Оба достаточно крутые, на них написано большое количество известных игр. Допустим, вам всё же больше понравился C++.
Но тут возникает проблема: среди популярных сегодня языков C++ — один из самых сложных. Что делать?
Есть мнение, что если ваш первый язык будет слишком простым, то вы не сможете стать хорошим программистом.
Всё из-за того, что простые языки не требуют от вас знаний, как устроен компьютер, как данные хранятся в памяти, как процессор выполняет операцию деления и так далее.
Тот же Джоэл Спольски писал, что начинать погружение в программирование нужно с C (ещё сложнее, чем C++), потому что так вы освоите главные принципы и сможете писать более эффективные программы. Даже если они будут не на C.
С другой стороны, очень просто потерять мотивацию, когда изучаешь язык и подолгу останавливаешься на каждом термине. Несколько дней на изучение переменных, потом ещё недельку на массивы, месяц — на функции и так далее. За это же время другие успеют выучить Python на достаточном уровне, чтобы создавать простые блоги.
Так что я считаю нормальным начинать с чего-то простого. Вы будете расти — ступенька за ступенькой. Причём с большей эффективностью.
Вывод
Обсуждать можно бесконечно, но вот совет: начните уже изучать хоть что-то, сопоставив первый язык со сферой ваших интересов. И не переживайте, если вам понравился сложный язык. Сейчас обо всём можно найти понятные и подробные руководства. Например, в своей новой серии статей я максимально просто объяснил сложные понятия в C++. А на нашем курсе всё это можно закрепить на практике.
Какой язык программирования выучить в паре к 1С: Java или Python
Какой язык программирования выучить в первую очередь?
Товарищи! Кто на данный момент, и в прошлом занимался написанием ПО \ созданием сайтов. Какой ЯЗЫК.
А ваше реально самому выучить язык программирования
Вот хотел спросить а ваше реально самому выучить язык программирования. и кто из вас уже его.
Какой язык выучить?
Вот не могу определиться какой всё же язык выучить. Раньше учил php писал на нём кое какие скрипты.
В точку! Тоже самое хотела сказать!
С питоном не знакома, но разве на нём можно писать приложения под винду? Java мне очень нравится, но не было времени его освоить до такого уровня, чтоб взяли бы на работу (хотя на джуниора возможно потянула бы), и столкнула меня жизнь с 1С, теперь страдаю .
magirus, прав, Java и C# похожи синтаксисом, отдаю свой голос за Java.
P.S. Ещё мне visual basic нравится, писать программы под windows на нём довольно просто, и там тоже есть функции получения информации из web.
Vitalik85, ты не мой брат ли случайно!? давай вместе осваивать!? Я тоже более 5 лет 1С ник и недавно стализучать другой язык. Ты откуда? Я лично выбрал scala, начал изучать, и ты знаешь он даже немного на 1С похож, в общем я доволен. А перед этим ковырял java, но ысфдф мне больше понравилась. Сейчас вот стараюсь изучать его. прям вот охота изучать. Так он мне понравился.
Добавлено через 13 минут
Ну вот, отредактировать свое «ысфдф» уже не могу в общем, я за scala. Литературы маловато, но все же хватит что бы стартануть!
Добавлено через 2 минуты
И ксатати, на scala можно писать все, и даже сайты.
На данный момент живу в Ростове-на-Дону.
Спасибо всем за ответы. Я в принципе больше к Java и склонялся, рассеяли мои сомнения.
Я бы с радостью с 1С ушел на ООП. Да вот только финансовый вопрос меня держит. Как это сделать не представляю.
Пока что планирую только выучить, а там уже смотреть буду что к чему. Может варианты появятся. + конечно нужно подтягивать английский.
Не начинайте учиться кодингу с Python, начните с языка C
Python удивителен своей способностью продвигать программирование. Он как будто является подтверждением популярной идеи «если вы знаете английский, то должны знать, как писать код». Благодаря синтаксису, напоминающему английский язык, парадигме отступов и огромному количеству библиотек другие языки по сравнению с Python начинают выглядеть бесполезными.
Python — язык программирования по умолчанию для «самой сексуальной профессии 21-го века». Да, громкие слова о данных по-прежнему сохраняют за data science репутацию «сексуальной работы», хотя современные обстоятельства уже не полностью поддерживают это утверждение. Языку Python удалось добиться того, что он позволяет решать большинство проблем data science.
Кроме того, Python также популярен в блокчейне, DevOps и кибербезопасности.
Ажиотаж вокруг Python постоянно растёт. Этот язык используется как средство кодинга в бесчисленном количестве онлайн-курсов и учебных программ.
Несмотря на всё это и вопреки всей привлекательности Python, он не подходит для начинающих в программировании. Лучшим вариантом является C.
В этой статье я расскажу о том, почему в качестве опорной точки вместо Python следует использовать C.
Начинай с самого сильного
Python — это высокоуровневый язык программирования. То есть Python имеет высокую степень абстракции, обеспечивающую удобство общения между пользователем и языком.
Другими словами, механизм интерпретации Python склонен закрывать глаза на ошибки, о которых другие языки программирования скорее всего сообщили бы. В нём нет объявления переменных, используется автоматическое приведение типов. Всё это упрощает программирование и превращает Python в дружественный к пользователю язык.
Любопытно, что преимущества Python одновременно являются и его недостатками. Такой подход культивирует ментальность, поощряющую нетерпеливость и лень.
С другой стороны, язык C — это язык программирования среднего уровня. Он находится между низкоуровневыми (ассемблер, машинные языки) и высокоуровневыми (Python, Ruby и т.д.) языками. С практической точки зрения из-за этого на C писать сложнее, чем на Python. Однако усилия того стоят.
C отображает истинную картину того, чем является программирование. Программисты на C преодолевают сложности, чтобы их код запускался и работал, и это стимулирует развитие хороших навыков программирования.
Разработчики на C известны тем, что кропотливо создают упорядоченный, чистый код. А поскольку процесс накопления таких навыков начинается на довольно ранних этапах, они влияют не только на программирование на C, но и на кодинг в целом.
Проще говоря, C — это отличная стартовая площадка, потому что он создаёт прочный фундамент для начинающих разработчиков. Такие основы computer science, как динамическое распределение памяти и структуры данных делают программирование сложным трудом, но в дальнейшем разработчики пожнут плоды своих усилий.
Нереалистичные ожидания
В Python меня расстраивает то, насколько нереалистичные ожидания и ложные надежды он заранее даёт. Многие люди думают, что Python — золотой билет в мир их карьеры, поэтому появляется так много новичков, стремящихся освоить этот язык.
Например, недавно в одной группе в Facebook я наткнулся на пост семилетнего ребёнка, ищущего фриланс-работу в сфере data science. Как доказательство своего опыта программирования он приложил сертификат онлайн-курса по Python.
Я ни в коем случае не хочу принизить усилия этого мальчика, ведь многие юные разработчики создают код, свидетельствующий об их мастерстве. Неприятное чувство во мне вызвало желание поиска работы в таком юном возрасте.
Увидев это, я понял, что ситуация на рынке технологий значительно изменилась. Сегодня каждый хочет освоить Python, чтобы получить обещанную прибыльную должность.
Я не говорю, что в этом вина Python. Это наша собственная вина.
Это наша вина, потому что мы обычно ставим планку слишком высоко и ведём себя так, как будто Python — это альфа и омега. Если подходить реалистично, то для успеха в современном непредсказуемом мире требуется больше, чем желание и язык программирования.
Возьмём для примера экономический спад, связанный с пандемией. Этот кризис превратил рынок труда в поле боя. Это, в свою очередь, нанесло урон выпускникам со степенью computer science, которые когда-то устраивались на работу без изматывающих поисков. Следовательно, если вы не продвинетесь дальше, чем глупый сертификат, и не сотрёте пальцы в кровь, то у вас нет ни малейшего шанса.
C — это хороший выбор для тренировки своих пальцев и подготовки мозга. В конечном итоге, вы как минимум получите представление о трудностях, которые вам предстоят в дальнейшем.
Python приготовлен на C
Python — это всего-навсего набор правил.
Правила, управляющие Python, можно реализовать в некоторых языках. Обычно название конкретной реализации состоит из аббревиатуры использованного языка и слова Python.
Например, для C есть CPython, а для Java — Jython.
Самая популярная реализация Python написана на C. Поэтому определённые знания C точно пригодятся при расшифровке кода на Python.
Кроме того, довольно многие пакеты Python, допустим, NumPy, написаны на C и его младшем брате C++ для устранения недостатков эффективности, потому что по сравнению с ними Python ужасно медленный.
Когда человек привыкает к быстрому коду, он начинает болезненно воспринимать медленно выполняемые программы. Это ведёт к стремлению создавать эффективный код, как на Python, так и на других языках программирования.
Выводы
За свою жизнь я поработал более чем с пятью языками программирования, первым был C, а последним — Python.
Хотя я благодарен тому фундаменту, который приобрёл благодаря старомодному C, я совершенно точно не пристрастен к этому языку. Мои сомнения в обоснованности изучения Python в качестве первого языка программирования обрели основу, когда я поработал с разработчиками, начавшими с Python.
Я заметил, что многим (не всем) разработчикам, с которыми я общался, не хватало навыков рефакторинга. Они редко воспринимали серьёзно проблемы с исполнением программ и их волновало только создание работающего кода. На самом деле, кодинг — это нечто большее.
В этот момент я понял, что под гримом Python скрывается уродливое лицо. Лицо, которое могло бы стать красивее, если бы за ним тщательно ухаживали с самого начала.
В конечном итоге, путь к мастерскому освоению Python становится менее трудным, если есть фундамент в виде знания C.
На правах рекламы
Эпичные серверы — это VPS на Linux или Windows с мощными процессорами семейства AMD EPYC и очень быстрыми NVMe дисками Intel. Расходятся, как горячие пирожки!