Выбор направления, Python

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Привет.
Изучаю python. Вроде нормально пошел:) Прошел книгу Доусона, задачки разные на pythontutor, немного почитываю Лутца паралельно, Coursera, Stackowerflow, мобильные приложения с различными квизами и тд.

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

По тому что я вижу, вроде интересным является веб. Если веб — тогда Django? Или другой фреймворк? А тогда какие СУБД? Или вобще не веб?

Кароче, спасите-помогите!:)

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Не хочется засорять форум схожими темами, поэтому напишу здесь.
Использую питон для личных простых скриптов, работаю в гос конторе, английского elementary, вайти давно, но веба никогда не касался. Хочу поднять попу от стула и заняться чем-то более прибыльным. На данный момент занимаюсь английским.
Вопрос собственно вот такой: есть ли смысл продолжать развивать направление питон+джанго, чтобы получить работу в Днепропетровске? Или взять направление джава+спринг? Понимаю, что вопросы подобного плана на форуме уже были, но вот у меня специфика с релокацией. Могу только в Днепре работать.

джава плюс спринг плюс английский, прирост от английского будет самый большой

Сам доволі недавно перебував у такій же ситуації та задавався цим же питанням.
Якщо хочеш поскоріше знайти роботу — веб і тільки. Принаймі, у мене склалося стійке враження, що у цій сфері найбільший кадровий голод, та найбільше пропозицій саме для початківців.
Тобі на даному етапі, коли знаєш лише основи самого пайтона, радив би не витрачати час на пошук роботи, тому що на ринку багато конкурентів, які можливо не мають потрібного способу мислення та не схильні до такої роботи, але не полінилися вивчити веб-фреймворк та мають базові знання фронтенда.
Конкретно, радив би вчити Django. Цей фреймворк найбільш цілісний і системний, явно використовуються поширені хороші практики, активно розвивається та дійсно багато вакансій, де вимагається його знання. Коли більш-менш зрозумієш Django, то роботодавець зможе взяти тебе і на проект на Flask для прикладу — перевчитися і зрозуміти специфіку не так важко, як вчити спочатку.

Пропоную такий алгоритм:
1) HTML, CSS, JavaScirpt. Вивчення Django само собою потребує елементарних знань фронтенду. Рекомендую перед початком пройти курси по html, css, javascript, jquery на codecademy. Також, обов"язково getbootstrap.com. Раніше бачив непоганий та швидкий курс по ньому (www.edx.org/...orial-microsoft-dev203x-0 ), але не знаю, чи він досі доступний.
2) SQL. Також, на codecademy є курс по SQL, його теж потрібно пройти. Спочатку ти навряд чи що добре запам«ятаєш, але бажано мати поняття.
3) Django. Тепер можеш починати вивчення фреймворка. Є непоганий офіційний туторіал docs.djangoproject.com/en/1.9/intro/tutorial01. Зізнаюся, що коли я сам його почав проходити, то взагалі нічого не розумів, довелося шукати full idiot`s guide.
У процесі вивчення рекомендую звертати особливу увагу та практикуватися з class-based views (на співбесідах з повними новачками часто питають — «ви використовуєте fbv чи cbv?»).
4) Один з популярних JS фреймворків, крім jquery. В моєму випадку це був AngularJS. Той же codecademy та codeschool в поміч. Не факт, що тобі прийдеться щось одразу на ньому писати, але розуміти як він працює потрібно.

Також, в мене склалося враження, що елементарні навики роботи з redis теж завжди дають бонус. Тому після основ джанго пропоную пройти його оф. туторіал та спробувати redis у взаємодії з Django.
Обов«язково почитай про бібліотеку requests. Десь бачив опитування, то вона зайняла перше місце у рейтингу улюблених бібліотек пайтоністів. З її допомогою набагато зручніше працювати з http, чим за допомогою стандартної пайтонівської бібліотеки. Must have.
Приділи увагу PEP8. В мене не виходило писати нічого схожого на пайтонівський код, поки мене не заставили користуватися текстовим редактором, у якого з бонусів лише підствітка синтаксису та trailing whitespaces. Я б радив теж так зробити — завчити РЕР8, а потім писати код без автоматичного виправлення і перевіряти за допомогою pypi.python.org/pypi/pep8. До того часу, поки твій «рукописний» код не буде без таких помилок — ти навіть не падаван;)
Привчися коментувати кожен клас та функцію/метод, якщо не можеш щось одразу придумати, коментуй «„„...““», а потім допишеш обов«язково.

Перед самим пошуком роботи ще раз онови знання Linux (курс на codecademy якраз те, що треба), передивися туторіал по sql на www.w3schools.com/sql (на співбесідах майже завжди питають основи sql, в тому числі найпростіші джоіни, навіть якщо потім ти зовсім не будеш використовувати raw-запити).

FAQ на співбесідах:
Потрібно знати «три кита» ООП та розуміти, як вони реалізовані в пайтоні. Практично завжди питають про list comprehensions, типи даних та їх поділ на mutable-immutable. Поняття ітератора, генератора, декоратора. Magic-методи, абстрактні та метакласи. Повний синтаксис циклів та try-except. Типи даних, області видимості у JS. Пріоритети у CSS.

Думаю, цього достатньо на найближчі кілька місяців, а там побачиш уже сам.

Та власне я по ній і починав вчити Django, але думав тут не робити особливої реклами;) По TDD я дивився оце: test-driven-django-development.readthedocs.io/en/latest. Мені дуже сподобалося.

А какой джанго поддерживает 3-й питон?

конечно же писать на 3ем питоне (видал я тут недавно извращенцев с джанго 1.9.5 и 2.7 питон)
я к таким извращенцам отношусь (отпустите мне этот грех?). не понимаю просто, чем 3 питон лучше и удобней второго?

Почему, может человек просто не хочет учить что то новое. Это как пхпшники сначала бомбили от ввода ООП, когда "все и так работало"(ну это я конечно прочел что они бомбили, я не настолько стар)

Просто я не настолько бородата)) это мой первый язык программирования. Я выучила второй питон, мне удобно, все понятно.

ну так а реальные ответы будут?
то, что питон 3 — это основная ветка разработки и все новые а-ня-няшки там — это понятно
но что там принципиально нового?
юникод в строках? от него у творца Flask нехило так бомбит и он приводит свои агрументы
новый async io? так это дело наживное — к версии 2.7.12 сделают бекпорт во 2 ветку :)

Я оце зараз продивляюся вакансії і можу тобі сказати, що то не враження, на рахунок веб, то якась сувора і жорстока реальність! До того ж куди не сунься. Python, C#, навіть Java! Про JS взагалі мовчу, на бекенд вакансій хер та ніхера, зате сайтоклепання завались. Це повна срак@!

Программирование стало массовым именно благодаря вебу, всем этим сайтикам. Вакансии на серьезные вещи как были так и есть, просто до них надо «дорасти». А если желание «вайти вайти» ™ да побыстрее чтобы денег платили — то звиняйте, сайтики наше все, в особо острых случаях даже хуже — сайтики на цмсках. Так что радоваться надо, что порог входа так сильно впал и теперь программистом может называть себя даже вчерашний бармен, который за 3 месяца выучил базово ЯП и джумлу.

По Python ще часто трапляються вакансії у сфері мереж, ну і:

Посмотри в сторону автоматического тестирования — эти ребята всегда в цене.

Крім того, варто брати до уваги, що деякі вакансії не виставляються на публіку.

Воу, спасибо за столь развернутый ответ! Осталось еще понять как этот весь пакет знаний уложить так, что бы не забыть к нужному моменту.
Вы, кста, уже работатет?

Усе перелічене ви будете змушені використовувати, працюючи з Django. Так що, все воно систематизується в голові. В процесі будете підчитувати, заглядати — це нормально і інакше ніяк.

Так, працюю, якраз автоматизатором тестування. А перша робота в ІТ була таки веб, з Django.

А порекомендовать какой то курс или книгу по джанге можете?

Спасибо, как то упустил книгу. Отечественный производитель и цена приятная. А на счет

www.codingforentrepreneurs.com
противоречивые отзывы на udemy, кстати.

По книзі Віталія Подоби, яка згадувалась вище ти будеш мати більш менш готовий проект) і там досить гарно все описано. Так, є недоліки в книзі, але вони незначні. Сам нею користувався. Дає луже класну базу, особливо, якщо паралельно будеш розширено гуглити і розбиратись у всьому що не зрозумів у книзі

Сперва рекомендую просто пройти официальный туториал.
После этого лично мне просто отлично пошли Test Driven Development with Python авторства Harry Percival. Дальше — стоит слегка поднабраться опыта, клепая проект, и браться за Two Scoops of Django — просто великолепный сборник best practice, больше всего приносит пользы, когда уже есть какое-то понимание Джанго.

Я не ИТшник, начал карьеру с биржи фриланса не по ИТ специальности. Сейчас учу Пайтон. Ребята, кто даст почитать толковые книги, могу купить, напишите предложение www.facebook.com/artem.riyaka . Интересно посмотреть список работ python программиста, кто похвастается работыми на Upwork!? Да, если кто не перешел на фриланс, пишите дам совет)

Посмотри в сторону автоматического тестирования — эти ребята всегда в цене.

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

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

Допустим вам так уже лет 10, взрослый ребенок и вам дико нравиться спорт. Но вот проблема, вам нравится почти все виды, которые представлены в вашем регионе. Что бы как-то облегчить выбор, допустим, вы все таки решили остановиться на индивидуальных видах. А их у вас 10-15 видов разных наберется. Что бы достигнуть каких то результатов, выступить на соревнованиях(и это при условии что есть предрасположеность) нужно 6-12 месяцев. К тому времени как вы будутете «пробовать» один из последних в вашем списке, пройдет почти десяток лет, не исключено, что появится еще какой то новый супер-интересный вид который захочется попробовать, те что вы пробовали в начале вы уже «забыли», ваше сверсники уже давно закрыли КМС-ы и МС-ы, ну а вы уже почти профнепригодны но пролжаете пробовать.

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

Как там с питонами в фрилансе — заказов хватает или бывают простои? А то если сравнивать с пыхом, ну сами понимаете

Если ограничиваться только парсерами то получится полный застой, я бы сказал запой. А под пхп проектами удалось переманить на питон?))

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

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

в общем смотря какая у тебя цель: если найти работу как можно быстрее — учи фронтенд (ангуляр, реакт, ембер — что больше по вкусу). По перспективности, мое мнение, что рулит и будут рулить data scientist задачи

а как у нас нынче с трудоустройством в data science? какой минимум знаний ожидается от кандидатов на, к примеру, junior позицию?

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

А этот дата саенс, это всякие там математические модели и тд. или больше на статистику похоже? Я в том плане, чтоб не оказалось потом что мозг маловат для таких задач))) И конечно тоже интересно, что с трудоустройством в этом у нас.
На небе только и разговоров о Big Data :)

про мозг это да, гуманитарий неосилит
зато потом востребованность какая

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

а в посте выше была речь о потных дата саянтистов которых хайрит гугл, фб и др

окей, я воспринял в проекции на украинский рынок

пруфы?
у меня есть лично знакомые которые сейчас получают один 5к, второй 7к и уезжает в гугол в сф потому что голова на плечах, парню 23; оба окончили мат/кубик факультеты, оба датасаянтисты

поражает, как можно писать ’бред’ не оглянувшись вокруг себя, это вполне реальные вещи, и если год назад было не так, то все очень быстро меняется; differentiate or die

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

как всегда ваши коментарии переходят на личности, ничего нового

Всмысле, я не переходил, с каких пор просьба рассказать свои задачи и стоимость их выполнения считается за дичную обиду?
Всехда можно о знакомых рассказать

я не про Вас, я про

А у меня есть знакомые, что получают от $50K в час и те кто $5 в час.
И что? К чему был твой «аргумент блондики»?
— этот товарищ так чачто делает

К чему этот комментарий «бородатого дяди»?

в школе с математикой не дружил(небыло мотивации, так сказать), в универе пришлось выучить статистику. Насколько помню не очень сложная штука. Но так как 90% вашего поста слова мне не знакомы, полагаю что дата саенс не мое))

На Upwork’e нормально так вакансий с хорошим рейтом.

Яка дифура і матан, зараз багато економістів займаються data science. Основне правильно копочки натискати і галочки знімати в прогах типу KNIME :) Підготовити data scientist з нуля буде так затратно як тракториста в Білорусі. Цей напрям робиться МАСОВИМ.

Если веб — тогда Django? Или другой фреймворк?
кроме джанго на пайтоне много фреймворков еще есть) Flask, Bottlepy, Cherrypy, web2py, Tornado и т.д.
А тогда какие СУБД?
самые обыкновенные — mysql, postgress, mongo, redis и т.д. Для наиболее известных (как SQL так и NoSQL) привязки к python точно есть)
Или вобще не веб?
в науку (scipy, numpy) или «машинное обучнение» наверное тогда. Вроде в этой области python счас довольно активно применяется помимо веба.
Ну или gamedev или 3D графика, где пайтон вроде достаточно часто используется как встраиваемый язык.
Кароче, спасите-помогите!:)
"спасение утопающих дело рук самих утопающих"© :)))

Вы меня еще больше озадачили, спасибо)

gamedev
Кстати, тут какие-то особые технологии или фреймфорки?
Из Украины кроме Wargaming или Crytek его кто-то использует?
Кстати, тут какие-то особые технологии или фреймфорки?
ну PyGame и Kiwy есть. И еще парочку игровых движков с питоном в качестве одного из языков есть (Panda 3D кажись называется и еще парочка вроде есть). Еще RenPy для визуальных новел.

Ну а для создания 3D моделей персонажей для игр насколько знаю некоторые геймдевы используют Blender, который скриптуется на питоне.

Правда геймдевом сам не занимаюсь, посему не в курсе что из этого и насколько популярно/востребовано у нас.

так я ж и пишу

геймдевом сам не занимаюсь, посему не в курсе
просто знаю, что оно (kiwy) есть)

Kivy включает в себя Pygame (он прикольный кстати, хоть совсем маленький).
Kivy только вчера хотел поставить, выяснилось, что он не поддерживает Python 3.5, какие-то проблемы с зависимостями. прийдется на 3.4 откатываться. Мелочь, коненчо.
Я на самом деле не про то, на чем можно написать, а какие технологии реально используются на рынке.
Например, что использует тот же wargaming или ccp

Я на самом деле не про то, на чем можно написать, а какие технологии реально используются на рынке.
Например, что использует тот же wargaming или ccp
я не в курсе, какие фреймворки/технологии в реале используют большинство геймдев студий (может они вообще используют Lua, а не Python)...

А за

Ну а для создания 3D моделей персонажей для игр насколько знаю некоторые геймдевы используют Blender, который скриптуется на питоне.

Знал про Blender, но не был в курсе, что он на питоне

сам Blender написан не на питоне естесно (то ли С то ли С++), но питон используется как язык для скриптования всякой анимации и т.п.
Это как Mel ( en.wikipedia.org/...ki/Maya_Embedded_Language ) в Maya или скриптовый язык 3D Max’а (не помню, как он называется, кажись MAXScript)

сам Blender написан не на питоне естесно (то ли С то ли С++), но питон используется как язык для скриптования всякой анимации и т.п.
Да я понял, просто мысль неправильно выразил:) Спасибо

Підписатись на коментарі