Python или 1с что выбрать
Приветствую, это уже 3 подобный пост. На этот раз он исключительно про основы, немного перегруппировал прошлые уч. материалы и добавил новые, так же появился пункт, рассказывающий что со всеми этими уч. материалами делать. Именно в таком виде, пост мне кажется наиболее правильным, поэтому, это финальная версия, и следовательно - последняя. Думаю, что все это хорошо дополнит пост о том, как делать проекты(скоро он выйдет), и в каком то смысле, получится гайд из 2 частей, о том как учить основы питона.
Учебные материалы разделены на 3 разных подхода, деление это весьма условное, но с ним будет удобнее объяснить какие то моменты. Чтобы не расписывать одно и тоже(из-за чего сильно растет размер поста), я буду ссылаться на прошлые свои посты.
1. Автоматизация рутины
1.1. Автоматизация рутинных задач с помощью Python, Свейгарт - сильно отличается от других вводов в Python(да и не только, в python). Дело в подходе к практике: вы сразу учитесь делать полезные штуки(как говорит книга, автоматизировать свою рутину), а не стандартные абстрактные задачи, служащие исключительно для закрепления материала.
Кроме того, что это, рациональный способ изучения python(язык позволяет быстро сделать что то интересное/полезное/работающие, почему бы не использовать эту приятную, и довольно впечатляющую возможность). Это в принципе, правильный способ изучения программирования, именно программирования, а не просто синтаксиса языка(я делал пару постов об этой проблеме).
1.3 Огромное кол-во туториалов по автоматизации. Книга Свейгарта породила целую волну материалов по "автоматизации". Если вбить на ютубе "python automation", то темы роликов будут от работы в Excel до знакомств в Tinder(десяток подобных видео, и алгоритм рекомендаций избавит от нехватки новых идей).
2. Более классический подход
Большинство программистов начинало именно так - хороший толстенький томик ввода в яп. В большинстве случаев, вам будут рекомендовать именно этот, можно сказать, проверенный годами подход.
2.1. Книги, которые мне кажутся наиболее удачными представителями 'классического' подхода:
- Лутц, Изучаем Python. Наверно самая рекомендуемая и популярная книга по питону. Может оказаться несколько перегруженной для начинающих(в этом нет ничего страшного), в таком случае стоит выбрать один из вариантов ниже.
3 замечательные книги, немного разные по стилю(можно выбрать что ближе), во всех 3 очень хорошая подача, именно для начинающих
-Изучаем Python. Программирование игр, визуализация данных, веб-приложения, Мэтиз Эрик
-Программирование на Python 3. Подробное руководство, Марк Саммерфилд
-Программируем на Python, Доусон Майкл
3. Академический подход
Кроме ряда очевидных положительных сторон, есть одна особенность(тоже положительная), которая сильно влияет на процесс изучения - подразумевается предварительная подготовка студентов(даже если, курс читается с нуля). И тут речь не столько о предмете, сколько о способностях к усвоению материала. У вузов есть система отбора, у хороших - довольно жесткая, к тому же высшее образование, в принципе и не претендует быть чем то простым(например, если что то можно объяснить за 10 минут, то это не буду растягивать на 2 часа).
Два замечательных курса(МФТИ) Тимофея Хирьянова. Одни из лучших лекции по Python, и скорее всего, лучшие на русском.
3.2. Если все хорошо с английским, довольно интересный вариант:
4. Что с этим всем делать?
4.1. Все вышеперечисленный варианты, по сути, об одном и том же - изучении питона с 0(неважно, что где-то больше практики/теории, где-то учебный материал сильно выйдет за рамки основ или наоборот будет исключительно в них т.д. и т.п.). К тому же, они все - топовые представители своего формата. Поэтому, можно выбрать, буквально любой(какой больше по вкусу, да даже случайный), и это должно сработать. Если выбрать только условного Лутца(а не начать с автоматизации, закрепив потом курсами или академ. подходом), ничего страшного не случится, хотя это и довольно сложный вариант. Но говорить, что подобное не сработает - неправильно(повторюсь, многие буквально так и начинали).
4.2. Но можно и оптимизировать процесс, предугадав какие то проблемы, и решив их до наступления. Вариант который кажется, наиболее удачным:
Начать с автоматизации, это наиболее мягкий вход для новичков. Также, он решает проблему - 'непонимания процесса программирования', когда, ученик вроде бы и изучил основы синтаксиса, но в само программирование все еще не может.
После Свейгарта, можно, как минимум, научится с помощью кода закрывать, как говорит книга, свою рутину. Мб не столь впечатляющий круг задач, но это уже настоящее программирование. К тому же, если будет принято решение дропнуть процесс(будем реалистами, это случается часто), то как минимум, останется очень полезный навык.
Вторым шагом, надо закрепить изученное и закрыть пробелы(а их будет достаточно). В качестве ориентира, с которым стоит сверятся, отмечая, что пока не ясно - Лутц(настольная книга на все время изучения). Основным учебным материалом любой вариант из п.2. - п.3. Важный момент, их можно комбинировать, к примеру смотреть цикл лекций, одновременно проходя курс на степике и читая книгу, ничего страшного в этом нет, путаницы это не создаст, более того это может упростить и улучшить процесс.
4.3. Существует куча других отличных книг/курсов, и далеко не 2 вуза выкладывают свои лекции, более того, можно выдумать, куда более сложный способ изучения, и он может быть вполне рабочим. Но нужно ли все это? Меня смущает обилие списков с кучей учебных материалов, которые забывают упомянуть одну важную штуку: для того, чтобы выучить основы программирования, и мочь что-то сделать используя определенный яп, всего пары названий из подобного списка будет достаточно.
5. После основ(не зависит от выбранного подхода)
Ряд учебных материалов, изучение которых, на раннем этапе, сильно поднимет уровень.
5.1. Уникальный пример, где автор показывает процесс мышления при написании программы. Будет позитивной практикой, время от времени пересматривать и отмечать что-то новое, трекать свой прогресс. Можно считать видео ориентиром, когда подобный способ понят, понят и сам процесс программирования.
Этот Гарвардский курс полезно посмотреть всем начинающим программистам. Делал отдельный большой пост, о том, как его вписать в изучение питона, и почему это хорошая идея.
5.5. Один из лучших каналов для изучающих python Ссылка на видео, где разбирают исходники одной python библиотеки. Думаю очевидно, насколько это ценный и редкий(тем более на русском) контент. Отдельно стоит отметить стримы с code review.
P.S. Программирование - это не про колл-во прочитанных книг и пройденных курсов, оно про практику. Уч. материалы - это инструменты, они помогут прояснить какие то моменты, но ту самую практику за изучающего не сделают. Можно до бесконечности искать уч. материалы, проходить их, иметь кучу сертификатов, сделанных упражнений из конца главы и переписанного кода с туториалов, но так и не мочь программировать. По сути, просто отодвигать саму практику, это на самом деле, довольно бессмысленно.
Нет никакого смысла, искать правильный способ начать учить язык(тратить на это кучу времени), нужно просто подобрать самый удобный инструмент, сосредоточится на практике, если после, знаний категорически не хватает для реализации практики, нужно снова подобрать самый удобный инструмент и получить их.
В одном из постов, я приводил пример про комментарии в коде, в некоторых курсах, буквально, заставляют их писать под каждый хеловорлд. Это вызывает, разве что, раздражение. Можно в сотый раз попытаться объяснить их важность, однако, зачем они нужны, станет понятно и без этого. Очень естественным образом, на практике - ровно в тот момент, когда сам себе впервые задашь вопрос - "почему/как/что я здесь написал?"
Программирование на python
220 постов 7.5K подписчиков
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
Нет никакого смысла, искать правильный способ начать учить язык
а как же классика? =)
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Ответ
Шесть месяцев назад я нашёл в Интернете книжку "Dive into Python". Странная книжка, толстая, да ещё на не русском языке. Усердно прочитал её, методично и вдумываясь, но таки ничего и не понял. Но что-то не отпускало меня - я пошёл на python.org и стал изучать стандартную библиотеку, старательно, скурпулёзно, от корки до корки. Гугля примеры кода, я наткнулся на пост в блоге одного гуру, где было написано про PEP8. То, что рассказывал этот умудрённый опытом кодер, настолько впечатлило меня, что я словно в припадке безумия бросился зубрить эту конвенцию по написанию питоньего кода. У меня тряслись руки, по телу прокатывали волны возбуждения, я, можно сказать, бился в экстазе всё это время - и теперь могу процитировать наизусть любой пункт, даже если меня разбудить посреди глубокой ночи.
Новые знания окрыляли меня, я бросился писать (что бы вы подумали?) очередную имиджборду. Я не писал раньше имиджборд, эта была моей первой. По пути пришлось освоить азы вёрстки на html и css, но там всё оказалось совсем не сложно.
Я плавно двигался вперёд, наращивая функционал. И знаете что? Я упёрся в недостаток производительности. Ну, так мне показалось. Я делал замеры, устранял места с тяжёлым кодом. Тысячи раз запускал ab, но так и не сумел перейти порог в 300 запросов в секунду. Я как-то ожидал большего и был немного разочарован.
Гугл, снова гугл. Десятки статей и тем на форуме. Довольно быстро я заметил, что люди часто пишут про какие-то "асинхронные веб-сервера". Часто встречались названия Tornado и Gevent. Я прочитал про них подробнее - и был просто ошеломлён. Как мне это раньше не приходило в голову?! Это же, это просто гениально, чёрт меня побери!
Исходники в ведро, всё переписать! Меня переполняло новое знание, поток мыслей ровно ложился в строчки кода. Я просто не мог остановиться. Чашка кофе. Ещё чашка. Мой небольшой кусочек софта приобретал кристалльную чистоту, я смертельно устал, но продолжал в умилении полировать его зудящими руками, нанося последние штрихи.
Пять тысяч. Я получил производительность в пять тысяч запросов в секунду. В ту ночь я так и не смог заснуть.
Наиувлекательнейший мир хай-лоада открылся передо мной. Позже я изучил ещё много классных вещей типа сверхбыстрых асинхронных key-value-хранилищ, или, например, такого необычного подхода к обработке данных, как map-reduce.
Это уже был другой я, новый, обновлённый. С незашоренным взглядом, с жаждой новых знаний и незнакомых концепций. Я летел вперёд, оставляя за спиной ступень за ступенью.
За пол-года я сменил несколько мест работы, и моя зарплата взлетела до умопомрачительных сумм. Сотни замечательных мест открыли передо мной свои двери. Любые, самые изысканные девушки проявляли просто чудеса изобретательности, чтобы находиться рядом со мной.
А ещё, я никогда не забуду тот момент, когда на одной из конференций я впервые в жизни поймал на себе завистливый взгляд. Это был взгляд какого-то сливающегося с толпой неудачника, взгляд преисполненный ненависти, презрения и желчного вожделения, направленного на мой Олимп. Наверное, он всю свою никчёмную жизнь писал на каком-нибудь си-шарпе или там на джаве, проводя долгие дни в одиночестве. И теперь начинал подсознательно догадываться, что долгие годы безуспешно пытался построить замок из навоза.
Критика
Против "Погружения", стандартной библиотеки и PEP8 ничего не имею. А вот советовать не самые мощные веб-серверы я бы не стал [1]. Рекомендую uWSGI позади nginx.
А чего хорошего в канале под номером 5.5? Автор весьма неприятным сленгом рассказывает очевидные вещи местами без понимания того о чем говорит.
Спасибо за пост, вопрос, пожалуй, довольно частый, но вот по практике, через какое время можно пытаться начать что-то зарабатывать? Тема интересна, но ушел с работы и сейчас кроме изучения нужно думать о том, на что жить. Потому вопрос актуальный, куда-то устраиваться и изучать в свободное время, или поднажать и всё внимание уделить изучению. Уже начал, прочел по html/css, думаю, куда дальше копать
5. После основ(не зависит от выбранного подхода)
Ряд учебных материалов, изучение которых, на раннем этапе, сильно поднимет уровень.
Весьма полезная информация, сохранил.
Мне понравилась подборка
Захотелось писать ПО на питоне. Но не знаю какой конкретно и где этот питон и библиотеки для него скачать. Не подскажите?
Разработчик с нуля спустя год и сложности дальнейшего развития
Прошел почти год, как я тут создавал пост с вопросом, как стать разработчиком. Год этот был тернист, так как я никогда ранее не занимался программированием и работой с микроконтроллерами, знал совсем немного схемотехнику и единственное что это CAD моделирование.
Как не крути, но для хорошего начала нужна толика везения и я через знакомых смог найти контору, где требовалось делать примитивные вещи, уровня помигать светодиодом, но в основном монтаж, при том навесной. Это мне позволило зарабатывать на хлеб и обучаться. По этому в первую очередь я закупился моим кумиром и кормильцем, китайской паялкой на T12, которая верой и правдой служит мне и сейчас и не поменяю я ее даже на индукционку. Купил фен, ЛБП сам собрал, нормальный мультиметр, кучу ручного инструмента для работы с проводами, в основном мгтф:
кусачки, зачистки, обжимки, плоскогубцы самых разных видов и назначений. Отверток, сверел, и т.д. и т.п. в общем фулл эпик сет для монтажника. Также взял 3d принтер flying bear gost 5, моделил и печатал. Печатать качественно получилось ой как не сразу. Взял примитивный осцил, сразу второй монитор, ноут, рабочую мебель, короче устроил дома мастерскую. Попутно смотрел лекции по с++, повторял проекты Алекса на ардуинке, познакомился с гитхабом. По мере необходимости разбирался с работой i2c, spi, uart, 1-wire. В какой то момент мне стало неудобно работать с атмегой. Перешёл на esp32. Шикарная вещь. Куча памяти, 2 ядра, высокая частота, встроенный wi-fi и Bluetooth, а самое главное поддержка freertos. Поставит vs code, platformio и мне открылся новый чудный мир. Потом начал разбираться с передачей данных по wi-fi и Bluetooth. Открыл для себя самую нелогичную главу (даже битовые операции мне легче зашли) стринг и таблицы ascii. Но кое как справился, теперь в mit app Inventor делаю приложения под андроид и верчу переменные на х. как хочу :) и получается очень не плохо, самое главное стабильно, ни разу не видел ошибок или дисконектов. Уже несколько сделал на заказ. Да, монтаж у меня занимал большую часть времени и я не доволен объемом того, что я успел изучить за год. Я начал пояса Яндекса по c++, что бы структурировать знания, но пришлось бросить из-за срочного, большого и денежного заказа. Но в этом направлении тоже вырос, теперь разрабатываю сам не сложные печатные платы на smd, заказываю у нас в России, там же трафареты, паял феном, но сейчас закажу термостол, что бы по взрослому уже. В итоге на esp32 и готовых датчиках, экранах, исполнительных устройствах я могу разработать уже интересные вещи, могу читать чужой код, выдирать из него куски для себя и ковырять библиотеки. Но вот стала задача, где нужна stm32 с встроенной аппаратной поддержкой usb, датчики, где идёт голый модуль и на него есть только даташит, протокол передачи данных по usb и Bluetooth с компьютером, высокоскоростной, параллельный с автоидентификацией подключаемых устройств, да так, что бы разработчики ПО под винду и другие ос смогли обработать эти данные и усе, я чувствую себя как год назад, когда я ничего не знаю и не понимаю. Вот только тут я столкнулся с проблемой, что эта информация уже не начального уровня и ее не так много, точнее много, но она не структурирована и тебя не водят за ручку. В том году мне много чего подсказали, может и сейчас кто подскажет, где можно в достатке получить эти знания, по схемотехнике, как делать всю обвязку для stm32 и различных датчиков имея только даташит, по протоколам передачи данных, по программированию. А еще я бы хотел познакомиться с web интерфейсами, например на raspberry поднять web сервер с интерфейсом и передавать на него переменные с микроконтроллера по wi-fi с обратной связью. Делал из малинки локальный сервер blynk, wi-fi маршрутиризатор, подключал к ней esp32 и телефон, вышло просто и красиво, но такое нельзя использовать в коммерческих целях, только для себя, а значит не практично.
Понимаю, что лучший способ, это пойти работать в фирму, где занимаются подобными разработками, но это не путь самурая. Недавно даже приглашали в Московскую фирму, но блин, они тоже используют esp32, а он мне уже не интересен. Я бы даже заплатил кому-нибудь, что бы меня ввели в курс, что где сейчас используют, что мне надо изучить, куда копать и ответили на пару сотен моих вопросов, но что то я ни нашел таких вариантов.
Кстати, я тут пару лет назад делал пост как прожить на МРОТ, сейчас то время вспоминаю с ужасом и непониманием, как я так жил. Даже моих примитивных знаний хватает, что бы зарабатывать в несколько раз больше. И спасибо короне, из-за которой меня сократили и я решил попробовать себя в самозанятых, а то так бы и продолжал работать, думая что это нормально.
Моя история начинается с того, что на 3 курсе обучения на геолога-бакалавра я увлекся программированием.
Мне стало ясно, что я нашел дело своей жизни. После 4 курса, как только диплом был на руках, я тут же подал его в другой институт на программиста-магистра. Поступил и теперь учусь на первом курсе.
Здесь я немного разочаровался в преподавании, часов мало и учат очень поверхностно. Сам в свободное время изучаю Python. Еще я хотел бы параллельно работать по профессии, чтобы набить руку и получить опыт.
Но, к сожалению, у нас в Казани я пока не могу найти работу программистом с моим уровнем знаний. Только стажером-1С. Хотел бы узнать ваше мнение, господа, что для меня будет полезней?
1) Работать программистом-1С, хотя в будущем я хочу быть питонистом?
2) Или же не работать и посвящать свободное время изучению питона? Но без опыта же никто не хочет брать на работу!
- Вопрос задан более трёх лет назад
- 2892 просмотра
Замечательный по уровню провокативности вопрос для 1С-холиваров :)
Экзистенциальный кризис автора понятен, но его не решить вопросами в интернете.
Тут у меня не будет "серебренной пули", а просто немного здравого смысла.
1) Работать программистом-1С, хотя в будущем я хочу быть питонистом?
Мне даже браузер подчеркивает слово "питонистом" - видимо хочет заменить его на более значимое "пианистом". Быть питонистом - это ни о чем! Это отсутствие профессии и борьба с индусами за дешевые заказы на апворке по решению домашек для школяров-недоучек. На самом деле люди стремятся стать научными сотрудниками, которые используют Python в научных расчетах. А еще люди становятся крутыми админами, которые пишут обслуживающие скрипты на Python или правят результаты работы криворуких контрибуторов ихнего ПО. Еще люди могут становится веб-разработчиками и пилить проекты на Django. Куда мысль веду понятно?
2) Или же не работать и посвящать свободное время изучению питона? Но без опыта же никто не хочет брать на работу!
А с опытом эникейного мальчика-на-побегушках возьмут?
Не знаю какие у автора увлечения, но если экономика и теория управления предприятием не входит в их число, то заниматься 1С будет крайне скучно! А вот если вам нравится генетика и биоинформатика в целом, то могу порекомендовать обратить внимание на проект Rosalind, где даются базовые знания по Python и далее с его помощью решаются довольно увлекательные задачи. Я на этом проекте немного прокачался (после своего решения объязательно в обсуждении задач смотреть опыт других участников) и далее с легкостью писал свои скрипты под Ubuntu.
1с - отдельная сфера, не связанная с другими областями программирования.Лично я (мое сугубо субъективное мнение) 1с'ников вообще за программистов не считаю.
Если хотите программировать, учите питон. Недостаток опыта можно клмпенсировать собственными проектами. Начните с самых простых. Поделитесь ими на github. В it компаниях ценятся кандидаты, у которых есть собственный репозиторий на github. Да, вам придется изучить систему контроля версий git. Очень полезный инструмент в разработке. Освоить можно за пару-тройку дней.
Есть на ютубе полезный канал для новичков, называется SHIFU.
Посвящен развитию программиста как специалиста. Выпал мне в рекомендациях этот shifu. честно, канал ни-о-чем. Лично я бы посоветовал новичкам вообще не тратить время на просмотр этого контента. Автор, отвечая на вопросы, просто жуёт воду, да ещё и нередко со своей «однобокой» колокольни.
Ну или Продвинутый бухгалтер, который умеет писать макросы
dableproger, если смотреть с этой точки зрения смотреть, то питонисты - это циркачи, которые работают со змеями. Точно, циркачи из летающего цирка Монти Пайтона - инфа из Википедии. Верняк!
То о чем вы говорите - это 1С Бухгалтерия 6 из 90-х. И тогда "программистами 1С" действительно были продвинутые бухгалтера, которые умели писать макросы. Но уже в 90-х появились более полноценные 7.5/7.7, а в нулевых началась линейка платформы 8.х
Если не хотите смешить людей, то пора попрощаться с ракушкой и выйти в реальный мир. Не знаю, посмотрите что ли ролики на Ютубе как там в мире 1С сейчас все устроено.
Любой опыт всегда пригодится.
И чем он ближе к желаемому - тем больше и пригодится, априори.
------
1С - это очень и очень разная квалификация.
"Программистами 1С" называют и реальных программистов,
и мальчиков-на-побегушках-настрой-принтер-установи-картридж.
Ну исторически так сложилось.
Если вы реально будете программировать - а программирование там вполне себе серьезное: есть где развернуться и с оптимизацией запросов к базам данных и пр.
Те кто пишут иное:
Идиоты или просто не в теме
Ну например, они встречались только с одним аспектом по обслуживанию 1С, не относящимся к программированию - с ребятами которые бегают обновляют штатные конфигурации, а не занимаются программированием.
Никаких таких сверхумных экономических или бухгалатерских знаний не требуется. Весь учет построен на здравом смысле. Было 3 яблока, купили 2 яблока, продали 4 яблока, осталось 1 яблоко.
Спец. термины типа дебет, кредит, сальдо, проводка - программисту 1С нужны даже не каждый месяц, не то что каждый день. Да и учатся они за 15 минут. Бояться этого не стоит.
Отлично развивает навыки общения с заказчиком, постановку задачи.
Отлично развивает навыки оптимизации запросов, работы с типовыми алгоритмами.
Принципиальное отличие в 1С следующее:
Все эти так называемые "настоящие программисты" вместо того, чтобы решать конкретную прикладную проблему - тратят свое время в том числе и на общеупотребимую обвязку: логи, БД, GUI. В 1С это все уже реализовано и жестко зашито. Тебе не нужно тратить время на это.
Ты будешь тратить время на решение программным путем конкретной проблемы клиента.
Очень способствует развитию навыков системного анализа.
(1) Если мне нужно вскопать грядку, я буру лопату. Если нужно уничтожить траву по периметру - беру косу.
Да, косой можно ковырять землю, а лопатой сбивать траву, но это не их специальность.
Как можно сравнить разные языки с разными задачами? Это то же самое, что сравнивать лопату и косу - что круче.
Это то же самое, что сравнивать лопату и косу - что круче.(37) Рафаэль Сабатини не согласен: ". большинство же тащили огромные пики, сделанные из кос, страшные на вид, но мало пригодные в бою. "
(38) "Леди с косой" узнаваемый образ.Если она будет с лопатой, имхо, будет как-то не так)))
работает где ?
на море или в океане.
отличается как минимум синтаксисом, сообществом и употреблением .
обычно язык выбирают под задачу, или вам интересно задачу выполнить на разных языках ?
(3) Да, интересна средняя температура по больнице. Допустим есть серия одинаковых задач, даже без интерфейса, просто процедуры - реализация алгоритма. Что отработает быстрее 1С или Python, 1C или Java и т.п.(4)
быстрее - это относительно :
написать на ява не равно на питон
одно быстрее будет работать, но долго код "составлять и отлаживать"
на разовую задачу нет смысла
питон работает только с одним ядром :)
но. вы можете за 15минут составить скрипт и он будет работать 6часов
и на яве также или на 1с составите та же за 6часов и работать будет за 15минут :)
(4)
вобщем питонисты потянут на себя
джависты будут указывать свои только сильные стороны
а инфостарт может забросать помидорами за другие языки :)
я бы выбрал питон
он универсальный,простой .
Язык программирования общего назначения против специализированной базы данных. Да, есть что сравнить.
против специализированной базы данных. ? --- ничего себе подняли язык 1с
вы напишите gimp inkscape blender3d и много чего на 1с и тогда узнаем ваше GUI
я же предупреждал :
а инфостарт может забросать помидорами за другие языки :)
Хотя сравнивать их напрямую с УФ 1С я бы не стал. Но GUI есть и для python. (14) Потрясающе, а мужики то и не знали. И он прямо "из коробки" с питоном? Как и прочие GUI? И совершенно бесплатный? И учить им пользоваться намного проще чем форму в 1с набросать?
(15) он не из коробки в прямом смысле.
Но он бесплатный и его можно напрямую получить прямо с python.
Тут все не однозначно. И сложную форму на 1С не просто изучить/набросать. Но возможностей qt намного больше.
(15)
уже в сравнении цена ?
1с проф минимум любой конфигурации
или вы пишете задачи на "платформе обучения программированию" :)
потом окажется, что на старом компе 1с даже не запустится и понеслась .
так что будем сравнивать :
1с программист, который слышал о питоне и не знает,что с ним делать
программист на питоне, который слышал об 1с,но не хочет с ним связываться :)
начало "священных войн" никогда не можно узнать, но по направлению ветра - можно увидеть :)
Вот, как раз "средняя температура по больнице" будет одинаковая.
Если рассматривать чисто "просто процедуры - реализация алгоритма", то как правило 1С будет уступать по большей части.
Но, попробуйте на python нарисовать что-то подобное типовых от 1С (УТ или ERP). Много новых ругательств изучите.
Скорость разработки выше на 1С, если устраивает ее модель.
Более гибкое решение можно сделать на python (java и т.д.), но с ее особенностями.
Да даже просто попробуйте реализовать математические вычисления больших чисел на типизированных языках. Будет весело )
(7) Да, тему по сути можно сузить до алгоритмов с числами. Вопрос в том, чье ядро интерпретатора быстрее? (9)Боюсь, 1с какую-нить питоновскую numpy никак не обгонит. Но при чем скорость интерпретатора? Или речь о вычислениях не сложнее 2+2? Да, тему по сути можно сузить до алгоритмов с числами.Снова не корректное сравнение.
Как уже приводил пример: "попробуйте реализовать математические вычисления больших чисел на типизированных языках".
С другой стороны у python много встроенных методов манипулирования с коллекциями.
Тут тоже не все так однозначно. Разный подход.
По большей части, 1С компилирует код в байткод при запуске.
У Python (если брать стандартный вариант основанный на CPython) все проще и сложнее одновременно. Большинство его библиотек написаны на С/С++.
При выполнении кода он может как интерпретировать его и, если успевает, то и компилировать на лету. То уже при последующем выполнении этого кода может выполняться скомпилированный код.
Ну и работа с ядрами. Там все сложно. Клиент 1С работает только в одном потоке. Сервер уже может работать многопоточно.
У python тоже много условностей. В основном он работает только с одним ядром, но у него есть разные версии (JPython к примеру), которые могут.
Ну и стоит учитывать, что платформа 1С, хоть и написана на С++, но сама по себе сложная и ресурсоемкая.
По большей части, 1С компилирует код в байткод при запуске.Вероятнее всего 1С не компилирует "код" (под этим я понимаю код программиста в модулях) в "байт код" при запуске, он уже скомпилирован в интерпретируемый код, дальше просто работает интерпретатор с ним. Возможно вы написали о том же.
При выполнении кода он может как интерпретировать его и, если успевает, то и компилировать на лету. То уже при последующем выполнении этого кода может выполняться скомпилированный код.Питон компилирует скрипты в исполняемые программные (exe) модули? Вероятнее всего 1С не компилирует "код" (под этим я понимаю код программиста в модулях) в "байт код" при запуске, он уже скомпилирован в интерпретируемый код, дальше просто работает интерпретатор с ним. Возможно вы написали о том же.
Нет. Он именно компилирует в байт-код при запуске. Причем не все сразу. Общие модули (не глобальные) и модули объектов метаданных компилируются по мере их использования.
Можете проверить:
Сделайте ошибку в не используемом месте кода, скажем модуля формы справочника. Ошибка будет выброшена при попытке открыть этот справочник, хотя выполнение кода до нее никак не добирается. Именно при первом использовании нужного модуля будет компиляция в байт-код.
Тут на форуме есть статься про ассемблер для 1С.
Пример байт-кода можете посмотреть просто: Создайте свою поставке и не включите текст модуля для нее. Полученную конфигурацию разверните и выгрузите файлы. Там можно будет найти файл bin, в котором и будет байт-код.
Интересно, я думал что уровень интерпретатора ограничивается иерархией: ПрограммныйМодуль - КодИнтерпретатора (,) и т.д. А дальше ядро 1С выполняет КодИнтерпретатора. Не понимаю тогда смысла в 3 уровне - байткод. Это же не exe?
(23) выполнение байт-кода на виртуальной машине будет быстрее, чем использовать только чисто интерпретатор.
При использовании только интерпретатора придется или держать весь код в памяти, или каждый раз прочитывать код (одновременно анализируя на ошибки написания) и переводить его в свою выполняемую конструкцию построчно.
При предкомпиляции - весь модуль кода сразу единовременно переводится в байт-код и уже он в итоге выполняется.
Почему не делается сразу в exe. Вы знаете сколько времени может занять компиляция в исполняемый файл большого проекта?
Я тут как-то перекомпилировал динамические библиотеки qt5 в статические. На хорошем компе (i7 + 16Гб памяти и ssd) у меня это заняло около суток.
Так что предкомпиляция при запуске это не так уж и плохо.
(24)я так понимаю про питон и ява вы не только слышали :) Питон компилирует скрипты в исполняемые программные (exe) модули?
Кстати, сам python не компилирует исполняемый файл, но есть сторонние средства для такой компиляции. (4) при реализации универсальных алгоритмов средствами языка 1С будет в среднем на порядок медленнее чем Python(Java), и на несколько порядков медленнее компилируемых языков. Причина этого в том, что в 1С по умолчанию используется "большая" математика для всех вычислений, включая выражения 2+2.
Наткнулся на интересный обзор по скорости :) Конечно все относительно, но показательно с другой стороны, интересно упоминание использования ядер. Хотя это тоже вопрос подхода в написании программного модуля или работы программного ядра (интерпретатора , в случае со скриптовыми языками)
Как можно видеть, Java единовременно использует минимум 4 ядра, в то время как программа на C++ — одно. Однако, этим нельзя объяснить превосходство в скорости в 8 раз, так как Java не задействует все ядра на 100%.
Прошло достаточно большое количество времени, получилось ли найти работу? В попытках сменить сферу деятельности тоже прошел через это все, но я все проходил через 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 недели. А теперь собственно то что меня сподвигло написать данный пост.
На бэкенд проекта меня поставили одного. Проект - в будущем парсинг кучи сайтов, но на данный момент парсится только 2. Это всё дело разворачивается на AWS, используется Kafka (что это и зачем я так и не понял), для парсинга некоторых элементов используется Selenium, хранится все в Docker контейнерах, микросервисы (5 штук) на gRPC, БД - mongodb и около 4 сторонних библиотек. Задача состоит в том что б можно было запустить приложение локально или хотя бы минимизировать затраты на AWS путём выпиливания ненужных технологий и замены нужных, на всё одна неделя.
Человек который писал проект до меня (а писал это точно не джун) уволен, проект, на сколько я понял, никто кроме него не знает. И весь мой первый день состоял в том что я сидел, читал документацию и читал про эти технологии. К слову документации на весь проект 100 строк и примерно столько же строк комментов в коде, всего кода в проекте 14000 строк. Возможно мне не показалось бы это таким сложным при наличии менторства, но его не было.
Я имею представление о 30% от стэка технологий (который естественно на собеседование никто мне не сообщил). Так что вечером, после этого всего, подумал и решил, что больше туда не вернусь. Действительно ли джуны и стажеры должны заниматься такими вещами или мне просто "повезло"?
Супер-недо Junior Python или история о переквалификации
Итак, доброго вам времени суток, усаживайтесь по удобнее, мы начинаем.
В посте будет описана попытка переквалификации из одной сферы в другую, разобрано что сделано, что находится в работе и какие сложности лично я испытываю в таких условиях.
Сначала будет минутка истории. Представьте самого обычного среднестатистического человека. У него нет высшего образования (бросил/выгнали/нет денег/не сложилось), работает на работе, приходит домой, кормит кошку.
Пьёт пиво по вечерам, ну и потихонечку деградирует как может.
Однако всё таки нечто упавшее сверху (то ли яблоко, то ли осознание недостатка пищи для мозгов) сказало мне, что так больше продолжаться не может. Одним чудным декабрьским днём, было принято решение о том, что пора что-то делать. Опуская подробности - я переехал из Сибири в чудный город Ленинград (в котором жил прежде много лет) и начал таки думать как дальше жить. Переезд произошёл в июне 2018 года.
Программирование меня никогда особо не притягивало. Из школьного/университетского курса, в голове отложилось только то, что там есть куча непонятного бесполезного синтаксиса, который бесит чуть более чем полностью. Однако зная мою любовь к математике, кто-то из друзей предложил попробовать себя в программировании, но на языке Python, мол не будет там у тебя этих проблем. "Почему бы не попробовать?" - подумал я и собственно началось.
Сначала я пошёл в интернеты и узнал, что такой язык программирования есть (уже маленький успех). Нашёл гайды, мануалы и начал читать. И сразу стоп.
ОШИБКА НОМЕР 1. На попытки читать не систематизированную информацию пытаясь переквалифицироваться я убил месяц, а то и больше. Если вы собираетесь менять сферу - НЕ ПОВТОРЯЙТЕ ЭТОЙ ОШИБКИ. Информация плохо усваивалась и закреплялась, долго до меня доходило, что надо не так, но всё таки дошло. Были найдены курсы на образовательном портале по данному языку программирования. Думаю ссылки оставлять было бы не корректно, кому нужно найдут сами - их бесчисленное множество.
Я начал проходить курс, решать задачи поставленные в нём и иногда проводил супер много времени за этим занятием.
Это была моя ОШИБКА НОМЕР 2. Не нужно сидеть по 18 часов пытаясь что-то сделать. Во первых вы рискуете утратить интерес к вопросу который изучаете, во вторых, после первых 10 часов вы скорее всего будете соображать хуже и плодотворность вашей работы будет катастрофически уменьшаться. В третьих - вы не получите удовлетворения от победы над задачей просидев над ней слишком большое время подряд. (Как пример мне попадалось несколько подобных задач в курсах или в заданиях на собеседования. Были те которые я решал "пока не решится", а были те которые я делал день за днём, с перерывами и отдыхом. Результат от вторых приносил мне искреннюю радость, от первых лишь один глубокий выдох)
Так как я люблю математику, то попутно, для разгрузки я так же начал проходить курсы по теории вероятности (дабы обновить память, изучал её для себя), мат статистике и линейной алгебре. Старался как то использовать их в том, что пишу. Будем честными - получалось не очень успешно.
Пройдя первый из курсов мне пришлось взять перерыв. Средства заканчивались, работа которая была найдена отнимала неимоверно много времени, но использовать полученный навыки там было никак нельзя.
Это была моя ОШИБКА НОМЕР 3. Готовясь к смене рабочего профиля, позаботьтесь о том, чтобы у вас была работа, на которой вам хватает денег для того чтобы жить и которая предоставляет достаточное количество свободного времени для изучения нового. Работать 6/1 по 14-16 часов в день явно не то, что вам нужно для самообразования.
Было заработано достаточно средств и я продолжил проходить курсы, приступил к более углублённому курсу в язык, более сложные задачи. Материал начал восприниматься тяжелее. Мозг который уже отвык думать воспринимал всё в штыки. Но "русские не сдаются", так что если не получается, слушаем/читаем/делаем ещё раз. Попутно узнаём, что часто проще найти информацию на английском и перевести, чем шерстить в поисках инфы на русском. Заводим гит и учимся с ним работать.
Сейчас я подхожу к концу изучения второго курса и так как средства скопленные на последней временной работе начинают петь самые грустные, снова пришлось искать работу. Тут было принято решение, что нужно искать оплачиваемые стажировки. И тут началась эпопея с поисками первой стажировки. (Которая продолжается и по сей час). Выбор языка мне приглянулся, но теперь я обратил внимание и на требования рынка.
И тут я думал, что всё. Ну как бы, где человеку входящему в сферу взять столько и сразу. На собеседования меня никто не приглашал. Потом начал шерстить знакомых, может у кого-то что-то есть связанное с вакансиями. Следующей ошибки я не совершил, но был близок.
ОШИБКА НОМЕР 5. Не пренебрегайте знакомствами при поиске работы. Даже если вам неудобно/стыдно, лучше воспользуйтесь возможностью. Так я попал на своё первое интервью.
В следующий раз перед интервью я обязательно выпью валерьяночки, потому-что трясло меня примерно как школьницу при виде Джареда Лето, и тёк я примерно так же (но не там).
На собеседовании я узнал в каких местах у меня есть информационные дыры, чего недодали мне курсы, что нужно залатать. Естественно меня не взяли, но опыт был полезным, за что компании я благодарен.
Наступило сегодня. Завтра собеседование на должность связанную с IT очень косвенно, потому что ждать неделями или месяцами у меня пока нет средств.
Что делать дальше? Пока планируется придумать какой нибудь полезный в быту проект и реализовать его, выложить на гит, закончить текущий курс и начать новый. Ознакомиться с математикой и её использовании в machine learning, пройти курсы по алгоритмизации и искать собеседования в удобное для меня время.
Я решил написать этот пост изначально для себя, чтобы было куда тыкнуть себя носом, но раз у нас есть интернет, то почему бы не опубликовать это дело. Ведь если хотя бы один человек, не попадёт на мои грабли, благодаря этому посту - он написан не зря. Когда я найду первую профильную работу, я напишу следующий пост о своих граблях. Спасибо за внимание.
Читайте также: