Comments 120
«До уровня мидла можно прокачаться в течение года обучения. Например, в Geekbrains есть обязательные курсы и дополнительное. Все их надо пройти полностью чтобы честно сказать — я прокачался до уровня мидла. То есть, получается год основной программы и ещё полгода параллельных курсов»
видишь как всё просто, именно так и становятся мидлом, а ты хернёй страдал
Я попытался изучать С, PHP, Java еще какие-то языки, но не заходило — начинал и бросал. Не мог писать даже простейшие скрипты. Когда я ходил на курсы по С, у меня получалось читать код, но не получалось его писать. Мне давали задачу, я смотрел на нее и не представлял, как делать.
IT, которое мы заслужили…
- Низкая способность(или отсутствие способности) к алгоритмическому мышлению
- Низкая способность(или отсутствие способности) к самостоятельному обучению
Оба навыка — ключевые для программиста. Если бы услышал такой отжиг на собеседовании, то сразу проверил бы уточняющими вопросами. Подтверждение этой догадки, имхо, означает профнепригодность.
Ну либо просто в тех попытках вообще никакой мотивации учится не было, кто-то из под палки заставлял =)
Как мне кажется, потому что в C, Java и иже с ним думать надо что и как сделать, и чтобы оптимально.
А в питоне написал какой-то скриптик и в ус не дуешь, дума о том, что он сьел из памяти
Ну да, а мы потом жалуемся что какой-то калькулятор с 10 кнопками сожрал полгига, а браузер так вообще все 4 Гб
Как раз браузер на Python не пишут ;)
— простая автоматизация (bash скрипты это забавно и old school, но очень многое реально проще и очевиднее делается на питоне). Странно, что бывший сисадмин не разу не столкнулся с Питоном в своей профессиональной деятельности.
— gamedev (естественно, не там, где рендеринг, а там, где логика). Майнкрафт вам, так сказать, в пример.
— плагины к приложениям, как уже было сказано.
Ну, и не забудем про то, как офигенен Питон в прототипировании (хотя, может быть, это только я так по нему угораю в этой роли).
Протитипровать удобно. Раз-два — и уже видно «работает/не работает».
Для прототипирования веба мне больше понравился руби с рельсами. Сделали прототип, показали, собрали фидбэк и переписываем на PHP.
При всем моем уважении к внутренней красоте Руби и некоторому опыту работы с ней (без рельс), до удобства Питона не дотягивает.
Истории про то, что питон это или вэб на джанге, или датасатанизм со всякими сайкитлерн — не совсем правда. Для энтузиастов есть варианты вплоть до микропитона, который на контроллерном железе исполняется. И даже случалось работать с системами автоматизации где на нем были десктопные приложения и через обертки рулежка вполне себе промышленной автоматикой на Beckhoff TwinCAT.
Интерпретатор всего 830кб, но есть куча встроенных типов данных, сразу-же есть работа с сетью, графикой, оконная система.
Например, сколько будет, если к без десяти двенадцать прибавить полчаса?
>> 11:50 + 0:30
== 12:20
Вот простенький сканер портов:
repeat n 100 [if not error? try [close open probe join tcp://localhost: n] [print [n «is open»]]]
А это просмотрщик картинок (с выбором нужного файла):
view l: layout[origin 0x0 b: box «Load» [error? try [b/image: i: load first request-file b/text: "" l/size: b/size: i/size show l]]]
Редактирование и отсылка E-Mail:
view layout [e: field «Email» s: field «Subject» m: area «Body» btn «Send»[send/subject to-email e/text m/text s/text alert «ok»]]
Вобщем, весьма интересная зверушка. Лет 15 назад написал на нём что-то типа почтового сервера с хитрой маршрутизацией почты. Уложился примерно в 20 строк кода.
Языков много вяких придумано. Но, например, вряд-ли кто вспомнит REXX, GPSS или Clipper. А ведь писалось на них и применялось в работе.
Python — популярный язык с низким порогом входа, его знают практически все, и изучают даже в школах. Но это же минус для трудоустройства. Чтобы найти хорошую работу на Python, надо знать его очень хорошо до всяких тонкостей, плюс обычно требуются конкретные специфические фреймворки под конкретные задачи. Обычно это либо web, либо data science либо автоматизированное тестирование. Но для data science обычно требуют PHD-level, и просто так с улицы туда тоже не попасть.
Так что надеяться закончить месячные курсы и получать хорошую зарплату, это наивно. Любой может написать hello world на Python за 10 минут, только никто за это не заплатит. Python он как английский язык — его знают все в ИТ, но для трудоустройства этого недостаточно.
PS: Написано исходя из опыта нескольких лет разработки на Python ;)
Трудоустроятся единицы, но познакомятся тысячи
А для хобби да, ничего плохого нет.
И ведь кто-то платит деньги,
кто-то абонемент в зал на год покупает, а сходит 2 раза.
Их деньги, их жизнь, их ошибки, их поиск себя… Хуже когда кроме пива и телика нет интересов
«Курсы программистов за 2 месяца»
С++ за 21 день
В книге 819 страниц. Это только читай по 40 страниц в день.
В далеком 1988 году мне удалось приобрести копию книги Эндрю Таненбаума «Operating Systems: Design and Implementation». И в ней было дано описание языка Си, которое занисало всего на 12 страницах. Это было очень красиво. И я всегда ставлю в пример именно это описание языка Си.
Классика же :)
А я бы как раз рекомендовал начинать обучаться программированию с программирования на Python. Но именно чтобы понять, что такое программирование вообще, без конкретных планов использования его как профессиональный программист.
А если цель — начать зарабатывать как можно быстрее, наверное лучше смотреть в сторону Kotlin, или Swift или каких-нибудь модных web-направлений (HTML5+C#+...). Будет все равно не быстро, но быстрее чем на Python имхо.
Но для data science обычно требуют PHD-level
Интересное наблюдение. В вакансиях так и пишут, что им нужен PhD?
Ох уж эти новые программисты, те что не по призванию, а по моде.
Научиться в формате игры / за 5 минут / после курсов. Рукалицо.
"До уровня мидла можно прокачаться в течение года обучения"
До уровня мидла вы прокачаетесь только на реальном проекте. Возможно хорошо зазубрив все и освоив методику прохождения собеседований вы сможете попасть в Яндекс, не представляю что они делают с такими "мидлами"?) Но возможно о все кончится хорошо)
Ага, даже интересно посмотреть на такого кадра, который возьмёт на позицию мидла человека с резюме "в течение года учил Python на курсах".
Я понимаю, что пост — реклама Geekbrains, но нельзя же настолько топорно впаривать.
Вот ещё фееричный пассаж:
В базовой конфигурации Python лежит около 70 функций и несколько десятков зарезервированных слов, но даже крутой программист не обязательно использует их все. То есть, чтобы выучить сотню слов и понять, что они делают, можно потратить одну-три недели при желании и активной работе
Это из серии: в русском языке всего 33 буквы, то есть чтобы их выучить достаточно потратить один-три дня. Про то, что это никак не связано с умением выражать свои мысли на языке и вообще неважно сколько там функций и зарезервированных слов, почему-то умолчали.
У меня сразу мысль была: а что, на курсах учат все же все «около 70 функций и несколько десятков зарезервированных слов», или только те, что используют крутые программисты? А вообще программированию и подходам к разработке именно на Pythone учат?
Ну, я не стал в очередной раз по бедной букве Ё проходиться )))
люди прочитают и подумают, раз уж у Geekbrains такая лапота, то что у остальных???
ох уж этот ветер перемен
А вот те люди, что говорят, что Python не пригоден для этих целей, наверное, так не пробовали.
Какой зоопарк!
На первый взгляд, да. Сам не сразу пришел к пишарму, слушал какие-то глупые олдскульные советы. Плюс пишарм проф позволяет писать и отлаживать код на удаленной машине. КьютДизайнер нужен только гуй накидать, особой разницы в составе иде или отдельное приложение нет. Небольшая специфика рабочего места, но инструменты достаточно удобные.
Иногда прототип остается единственным экземпляром программы и в скорости написания и внесения правок питон быстр. Каждой задаче свой инструмент
Для сенсорных и мультитач есть Kivy.
А все перечисленные обновляются весьма часто, проблем нет.
Мы запускаем цикл статей в которых подробно расскажем о каждой профессии через опыт людей. В первом выпуске обсуждаем Python-разработчиков.
Кхм, а ничего, что не существует такой профессии?
Профессия называется инженер-программист. А инженер-программист, владеющий только одним языком программирования, — это примерно как столяр, который только одним видом пилы умеет пользоваться.
Пила-рокстар, рубанок-ниндзя, стамеска-гуру… где спрос там и преложение.
Я тот, кого сейчас называют фулстек, разбираюсь в разных областях, и я скажу, что мне очень далеко до специалиста, который, к примеру, последние 5 лет сидел и изучал только лишь PostgreSQL. Так же как и ему будет далеко до меня в других областях. Это разные компетенции, не надо их противопоставлять. «Инженер-программист» — так называется профессия в какой-нибудь госконторе. А в коммерческих огранизациях ищут людей для конкретных задач. И там профессия вполне будет называться «разработчик под android».
Кроме профессии инженер-программист (обычно выпусник вуза по соотв. специальности), есть профессии техник-программист (выпусник техникума/колледжа) и просто программист (выпусник ПТУ/лицея). Это без учёта всяких математик-программист и т. п.
шаг-2. Выбрал там курс питона
шаг-3. Прошел курс питона
шаг-4. Устроился работать джуном
шаг-5. Поднял за год себе уровень до мидла
шаг-6. Получил зп 180к.
99,9% людей отвалятся на 4 шаге.
Проекты уровня hello world на питон не пишут, там изначально идет уже какой-то кастом. И Джуны такое обычно не тянут.
учишь питон — датасаентист или веб
учишь C++ — микросхемы и высокопроизводительные финансы
учишь C# — геймдев (Unity)
учишь Java — android и нормальные приложения
учишь Haskell —
С# вроде вполне годен для "нормальных приложений", если заявления о его кроссплатформенности соответствуют плюс-минус фактам о Java
На .net написана большая часть софта для гос.предприятий. Документооборот на нем делается очень клево.
2) Странно, что вы только C# отнесли к геймдеву, а тот же C++ нет, хотя есть не менее популярный UE.
3)
учишь Java — android и нормальные приложенияА чего ещё хочется? Сам факт того, что на Java стало возможно не только на серверах что-то писать, уже круто.
На самом деле выучить вначале можно что угодно и быть почти кем угодно — сложнее потом менять «специализацию». Причём технически тоже несложно (если голова есть), сложно именно найти работу джуна python, например, с пятилетним опытом java — просто отфутболивать будут с формулировкой «а зачем оно вам?».
а) область/стек видятся более перспективными в финансовом плане;
б) текущий стек в чем то ограничивает/не устраивают возможности;
в) хочется перейти в другую предметную область так как с выбором текущей промахался/за несколько лет наскучила;
г) узнал о чем то в желаемом стеке технологий от чего нереально торкает…
Просто надо искать работу не джуна python, а сеньора python с пятилетним опытом в java. Желательно (но не обязательно) пару раз внедрив что-то в продакшен на python пока работаешь с java
учишь C# — геймдев (Unity)
Ммм… Забавно читать такое, когда ты пишешь бэкенд на C# для большой высоконагруженной системы.
На питоне еще много всяких консольных утилит. Правда его там потеснит ГО, но все же.
Поэтому первый язык должен обязательно быть максимально строгий. Как минимум типизированый. С моей точки зрения самый лучший это Object Pascal, жаль Delphi почил в бесконечности.
Каждый раз улыбаюсь словам «должен»
ассемблер — там вообще максимальная строгость языка и типизации
Шутите?
Ассемблер вообще без типизации по сути, максимум из типизации там — согласованный размер операндов в битах.
Это в ассемблере-то меньше проблем?
2) В зависимости от ассемблера, там можно добавить структур (и получить проблем с типами, но это уже ваши проблемы, а не проблемы языка).
3) потом все видишь в разрезе «а как это можно сделать на ассемблере», никакой магии. И поэтому легко перебежать на другие императивные языки.
Говорят, выучить английский и стать лингвистом легко. Правда?
«Очень известный в Python-сообществе Григорий Петров тоже говорит, что скилы по программированию (хард скилы) подтянуть всегда можно. Главное сойтись во взглядах на жизнь, чтобы было комфортно вместе работать. Я с ним согласен.
Я больше про то, что про прочих равных не стоит зацикливаться на конкретных технологиях. Если программист умеет писать код и делает это в нужной нам области, то смена языка или фреймворка для него не будет большой проблемой. Нанимая опытного спеца по мобильной разработке не очень разумно искать доскональные знания последних версий Android и синтаксиса Java наизусть. Велик риск, что через полгода вся команда будет срочно переучиваться на Kotlin или Dart. В современном мире гораздо ценнее умение быстро изучать новое, искать ответы на stack overflow без копипасты, понимать зачем и для чего пишется тот или иной код.
Машину чинить кривыми ключами — это какой же мастер согласится?
Зависит от кадровой политики и бизнес-модели. Когда нужны конкретные навыки, а то и знание предметной области, чтобы уложиться в дедлайн, а не закрывать бизнес, то очень точное попадание нужно, зато платить могут не разумные деньги
А теперь вопрос как же мне главному инженеру в сфере эксплуатации инженерных сетей в свои 33 года, бросить на х… эту работу и уйти работать в разработку (хотя интересно «машинное обучение»), ибо хочу развития и движения, а на нынешней работе его уже не будет. Взялся за питон (книжка+онлайн книга, пару курсов прошел онлайн), до этого также прошелся по вэб разработке, только обучался (HTML, CSS, PHP, JS), но это не вдохновило — хочется в последствии получать сложные задачи. Пайтона пока выбрал так как «низкий уровень входа», для того чтобы реально развиваться нужно работать в программировании, но при этом и кушать что-то, все эти курсы на мой взгляд вяло дотягивают до уровня джуниора, все курсы которые я вижу в русскоязычном интернете лажа и маркетинг, остается только саморазвитие. Так вот господа программисты скажите мне какова должна быть структура и программа моего обучения, чтобы через пару лет я мог стать джуном и также как я стал главным инженером (начиная со слесаря-наладчика 3 разяда) в итоге был шанс поднятся до сеньора?
— честно заявить, что занимаетесь вы этим именно на работе,
— и честно сообщить сколько лет вы уже там работаете
то есть, начнёте вы в таком случае отнюдь не джуном.
Далее, с этой смежной специальности, вы при желании сможете перейти на смежную этой специальности, но не связанную с вашей работой, специальность.
Например:
— электронщик может выучив C/C++ перейти на своей работе к самостоятельному программированию микроконтроллеров на C/C++,
— а, затем, набрав практики, на собеседовании сообщить, что хотел бы с C/C++ перейти на C# без микроконтроллеров.
Не упомянули, что сейчас питон почти необходимый язык для сисадмина/девопса. Когда все большая часть инфраструктуры переезжает в облака и на саас, работать с апишками на питоне в разы удобнее и продуктивнее, чем например на баш+jq
Он прощает мелкие ошибки разработчика
Вот и зря, начинающий разработчик получит хреновый фундамент. Лучше паскаля с его строгостью ничего нет. Мозги надо настраивать на нужный лад с самого начала, иначе потом будет говнокод.
Новичку лучше первым делом разобраться в синтаксисе
Вот и получится кодер, говнокодер. Новичку нужно учиться думать, строить структуры данных, продумывать алгоритмы. Язык и, соответственно, синтаксис нужно выбирать когда есть понимание как решать задачу.
Программистов надо проверять на программирование
И еще одна глупость. Невозможно за время собеседования понять что умеет человек. Может он просто знает как правильно отвечать, но с подумать у него проблемы. Собеседования же по типу Яндекса — это уже маразм. Как и программирование на бумаге. Надо понять умеет и человек думать, а все остальное второстепенно и, обычно, наживное. Еще важнее понять что за человек перед тобой, сможешь ли ты с ним работать. Непосредственно к программированию это всё никакого отношения не имеет.
Говорят, выучить Python и стать программистом легко. Правда?