Помогите определиться. Python или JS?

ОБНОВЛЕНО. Помогите ребятам с комментов на их вопросы также.

----

Почти аналогичный вопрос: .NET/C# vs Node JS — в плане перспектив входа в ИТ и дальнейшего развития

dou.ua/...​rums/topic/37735/#2386004

---

Сам на распутье: c# (.net, asp.net), JS (node), python (django или другие его фреймворки). В основном у меня опыт написания тривиального — на шарпе, но решил глянуть и их. В итоге питон сам по себе пока не зашел, не привычный синтаксис и остальное. да, я его и трогал то на «пол шишечки» поверхностно-минимально, но пока-что так. В будущем, конечно, это изменится (вероятнее-всего), но пока-что так.

dou.ua/...​rums/topic/37735/#2386238

------

Я уже выбрал....

Я на распутье! Python или JS? Базу, ООП знаю, парсер, тг бота писал — а что вообще дальше?

Я вообще в питон пришел, зная примерно базовый js.

Потом краткое ознакомление с tkinterom, написал прогу, парсеры на bs4, selenium. Пару телеграм ботов + postsql, mongodb. Возможность работать с файлами.
Решаю задачки на codewars.

Безумно понравился синтаксис без лишних скобок и закрывающих ;

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

Ну а JS (не серверный), с одной стороны — это фронтенд, с ним ты всегда ближе к конечному потребителю. Это простая визуалка. Знаю jquery(пожалуйста не плюйтесь, он удобный).

Вчера закончил один заказ (простой js скрипт), и клиент попросил еще сделать генерацию pdf.
Скачал один jspdf, а он с кириллицей не пашет, на гитхабе огромная портянка с этой проблемой, нерешаемой.
Скачал другой html2pdf — на пустом примере работает, в рабочем проекте — еще один баг. Сомневаюсь что на питоне были бы такие проблемы.

Я знаю, что есть джанго, но как то не понял, чем он лучше той же жумлы. Вроде как ничем, кроме «какой-то безопасности».

Конечная цель — получАть работу на фрилансе, или в фирме в Украине. И конечно удовольствие от жизни, а не нервы.

Что скажете?

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному4
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

Что по итогу Вы выбрали? Ибо я не особо внимателен.

Однозначно JS.
Весь фронтенд на JS, бекенд теж туди переходить, лямди в клаудах теж JS.
Вкотитися на нормальний проект як джун FE набагато легше, а далі походу діла розберешся і з NodeJS.
Головне йти на нормальний проект де толкові девелопери (тому старайся взнати хто тебе інтервюває, дивись їхній лінкедін).

бекенд теж туди переходить

Щось вже 20 років все переходить і переходить... і ніяк не перейде...
тільки якісь Go і Rust весь час вилазять...

На Go і тим більше Rust вайтішник не пройде.

На Go і тим більше Rust вайтішник не пройде.

Зараз Валялкін і його колеги доведуть тобі, що на Go будь-який вайтішнік пройде в десять разів простіше, ніж на JS. Тому я замовкаю перед великими. Але запитай у Валялкіна, де пляшка, що він мені проспорив :)

Python — бэкэнд. JS — фронтэнд. В общем — осваивать и то, и другое.

П.С. Генерить пдф в браузере — это какой-то особый вид извращения.

Ну если очень надо, а пхп не знаешь....

Я знаю, что есть джанго, но как то не понял, чем он лучше той же жумлы.

Django — фреймворк, Joomla — CMS. Это немного разное. :-)
Т.е. если сравнивать Django с чем-то на php, то корректнее наверное будет сравнивать с Laravel или Symphony. Ну или сравнивать CMS-ки написанные на джанге с джумлой (например, Wagtail — wagtail.org ).

Конечная цель — получАть работу на фрилансе, или в фирме в Украине. И конечно удовольствие от жизни, а не нервы.

Если на фрилансе, то наверное лучше брать JS (заказов по джаваскрипту думаю на фрилансе будет побольше, чем на питоне). Если в фирме, то выбирать, что больше нравится, если больше нравится Python, то искать фирмы, которым нужны разрабы на питоне (ну и аналогично с джаваскриптом).

Знаю jquery(пожалуйста не плюйтесь, он удобный).

Если jquery + фриланс, то можно выучить немного вордпресса — и идти искать на фрилансе заказы по верстке (думаю на фрилансе будет часто попадаться заказы по верстке под вордпресс).
А вообще, если:

Безумно понравился синтаксис без лишних скобок и закрывающих ;

и

конечно удовольствие от жизни, а не нервы.

то наверное лучше таки брать Python.

Про джанго понятно, но все равно не станешь писать голый код. Я уверен, те кто выучил джанго, используют CMS с аналогичным названием.
www.django-cms.org/...​/15/django-cms-vs-joomla

Та я все таки решил js+react, так как на фрилансе ТОЧНО будет масса задач.
А вордпресс я запинал .!..!..!. еще в 2010 году, и ему с той ямы не выбраться. Потом дал шанс в году так 2016-м, то тщетно:) Максимально кривая CMS.

Я уверен, те кто выучил джанго, используют CMS с аналогичным названием.

Не путайте понятия «существующие наработки» и CMS, понятное дело, что программисты часто переиспользуют свой код, если умеют пользоваться принципом DRY (Don’t repeat yourself). CMS предоставляет полное ядро и АПИ и на его базе строится проект, фреймворк предоставляет всего лишь базовый слой для построения проекта «под ключ», т.е. который соответствует определенным требованиям, инструментарии под которые и подбираются.

Почти аналогичный вопрос: .NET/C# vs Node JS — в плане перспектив входа в ИТ и дальнейшего развития

CS — это контр-страйк?
Очень жаль, что у многих тут сложилось впечатление, что я 19-летний юноша, желающий поднять бабла в кратчайшие сроки.

CS — это контр-страйк?

Думаю, имелось в виду это: en.wikipedia.org/wiki/Computer_science

Хотя, никакой это не «S», а «T».

Начинать лучше с английского + CS, алгоритмы. Потом базы данных, patterns.

и вас никто не возьмёт на работу )

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

В одном сошлись — Python + data science, или python + тестировщик. Других вариантов особо нет. Говорят, что вакансии питона закрываются очень быстро. Хотя это все очень относительно. Например, человек с Израиля сказал что у них там пхп нет вообще. К ним приезжают из снг пхпшники с 10-летним опытом и переучиваются. Так что все субьективно, возможно где то в другом месте питон — дико популярный.

И в моем варианте сказали — бери JS, и дальше уже думай, если фронтэнд, то это — React, если бэк — то Node, Angular, что-то еще.
---------------
Так что, наверное будет JS + React.

Сам на распутье: c# (.net, asp.net), JS (node), python (django или другие его фреймворки). В основном у меня опыт написания тривиального — на шарпе, но решил глянуть и их. В итоге питон сам по себе пока не зашел, не привычный синтаксис и остальное. да, я его и трогал то на «пол шишечки» поверхностно-минимально, но пока-что так. В будущем, конечно, это изменится (вероятнее-всего), но пока-что так.

Кстати, банально по «анализу» вакансий — 3-4 из 5 вакансий на питоне не про разработку веба (я так понимаю — тебе интересен веб), а про qa, devops, всё связанное с data science (data analyst, data engineer и ещё куча всего) + есть какие-то «малознакомые», которые тоже не про веб.

З.Ы. Ясен красен, что язык программирования — это инструмент, и программирование это не про него по большей части, но без него начать не выйдет. Так что пока упор на него, хотя и сопутсвующие технологии (коих можно понабрать из вакансий) изучать тоже нужно, что пока и идёт ввиду неопределённости с языком.
З.Ы.Ы. В копилку JS ещё идёт и то, что несмотря от выбранного backend стэка — всё же маломальски во фронте разбираться нужно будет, так что JS так или иначе потрогать нужно, даже кроме как опции выбора(что сейчас и делаю).

В любом случае, послежу пока за этим топиком, может и мне чего люди тут напишут (или посмотрю адресованное тебе, хотя-бы).

Да, вы правы, хочется видеть результат работы.

Да вот банально на этом сайте глянул. Миддлы : питон — 180 вакансий, JS — 587. По джунам в 2 раза меньше, но соотношение то же.

Тут еще нужно понимать, что по JS — львинная доля это фронт (хотя, бывает, и там может затесаться вакансия с беком (node) или очень редко — еще что-то странное), и для бека нужно смотреть прям node-раздел (он тут есть, ну или я вдобавок к dou ещё и на djinni смотрю (хотя я и другие источники мониторю, но основной джинни+доу)). А вот касаемо мидлов — Вы (сорян, что сразу на ты в начальном комменте) можете сразу штук 100-130+ из 180 отсеить, наверное, ибо они не про разработку а про всё остальное (в моём предыдущем комменте).

Так что в Вашем случае, js, вероятнее, будет лучшим вариантом. Сам сейчас тыкаю его с помощью learn.javascript + сайты-справочники всякие, да и в этом топике ссылку на «онлайн-курс» подчерпнул (это тот на английском, от которого Вы предпочли воздержаться пока-что), и на основании этого уже буду делать выводы (опять таки, если не возьму его в кач-ве main-языка — то в кач-ве secondary он в любом случае пригодиться хоть на самом минимальном уровне).

Тут ещё нужно насчёт сферы подумать. Если интересует web ну и там по ситуации что-то поделать под деск-мобилки, то то ещё терпимо и можно на всём (ну почти), а вот если, теоретически, душа ещё и лежит в devops, data science, qa (qa можно на многих япах, так что это не частный случай особо) — то тут, к примеру, Python будет лучше всего (сам тоже трогал их, но пока рано, да и не то, что-бы в основу хочу это)

ИМХО, learnjavascriptru — составлял какой-то конченный извращенец, уверенный в своем превосходстве над другими. Другого объяснения, почему там идет такое тяжелое изложение, и такие сложные задачи — у меня нет.

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

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

 он и есть намного проще потому что там все упрощено

learnjavascriptru — составлял какой-то конченный извращенец, уверенный в своем превосходстве над другими. Другого объяснения, почему там идет такое тяжелое изложение, и такие сложные задачи — у меня нет.

 но там нет ни сложных задач ни тяжёлого изложения

Один из лучших сайтов по js на русском, с авторским изложением.
Илью Кантора даже лично видел, как-то давно он приезжал в Харьков, с мастер классом.
У чела вполне талант преподавать.

Хотя, после learnjavascriptru я бы советовал проработать
Выразительный JavaScript Марейн Хавербеке
и
Вы не знаете JavaScript Кейла Симпсона
(желательно на английском)

Также, много фундаментального дает Тимур Шемсединов.
Но его очень много, на ютьюбе :)

freecodecamp

там конечно разного уровня материалы встречаются, но в целом ощущение
это те самые курсы для вайтишников. просто на английском

годятся для первого знакомства, получения порции воодушевления и позитива — «мама, я уже айтишник!»

ИМХО, learnjavascriptru — составлял какой-то конченный извращенец, уверенный в своем превосходстве над другими.

на ДОУ недавно такое мнение было высказано в адрес курсов по математике, и статей по ней на википедии :D

Закон Этвуда гласит: ── Всякое приложение, которое может быть написано на языке JavaScript, будет со временем написано на языке JavaScript.
Нет смысла бороться с судьбой...

Вопрос в полезности.
я видел как некоторые разработчики верстают небольшой блок для сайта используя bootstrap + flexbox + sass. При том что на сайте подобного нет. И все ради чего:)

Ради того что нужно лидов нанимать и процессы строить, в первую очередь с полиси по добавлению пакетов. Без этого можно говнокодить абсолютно на любом стеке

Вы из тех, кто за хлебом в супермаркет в 500 метрах, на машине ездит?
А тех кто ходит пешком нищебродами называете?
Именно такой вывод я сделал из вашего сообщения.

Я из тех, кто не тратит кучу времени чтобы пойти в супермаркет только за хлебом.
Хотите обсудить бытовые привычки или какие вопросы остались?

Понимаю) Ну вот реальный кейс в компании где работаю, используем React + TS для веб приложения, React Native + TS для мобилки, также есть небольшой сервер прослойка на Node.js, и там же один из корпоративных сайтов был на Next.js.
Отдельно скажу что TS знатно упрощает жизнь.

Якщо зможеш стати full stack JS програмістом, то будеш дуже популярним серед рекрутерів, але це нелегко. А так, на мою думку, писати на Python набагато приємніше, але у всіх свої смаки.

Спробуй, Typescript(це js з типами)) Спочатку може бути трохи некомфортно але наскільки я знаю коли переходиш на Typescript то на будь якій іншій мові потім писати не хочеться) я пробував C, C#, PHP, Python, JS(TS).
Після Typescript з усякими фішками, Graphql, генерацією коду, Nest.js і flexibility в цілому нічого краще для себе не знайшов.
Typescript, Nest.js, Typegraphql, graphql, React.js, Prisma 👈👈👈

Ніша де python конкурує це веб, ніше де python домінує — це AI,ML,DS. Писати на пітоні десктоп звісно можна але нащо?

Писати на пітоні десктоп звісно можна але нащо?

Если очень хочется Qt, но очень не хочется C++

Мы на прошлой работе одну небольшую утилиту делали именно в такой связке (Python + Qt). Ядро и простенький CLI к нему уже были написаны на Python вашим покорным слугой, а когда решили добавить GUI — то оказалось проще и быстрее обучить Python разработчика основам Qt, чем искать плюсовика и стыковать потом C++ и Python.

JS популярен и универсален: бэк, фронт, мобайл, десктоп. Но тянет за собой много заморочек. Пайтон более однообразней. Я в свое время выбирал PHP vs JS. Синтаксис больше нравится в PHP, но без JS никуда. На рынке труда более востребован js да и дает больше свободы (сейчас я про своих кандидатов), поэтому я за JS. Судя по тому что ты уже успел пощупать и то и другое, то для меня странно, что ты не успел определиться с фаворитом. Если js не зашел сразу, то уже и не зайдет, ведь ты видел более выразительный код...

Привіт, Олексій. Я сам лише початківець, тож чудово тебе розумію. На мій погляд твоє питання із серії: «молоток чи викрутка?».
Типу, тобі трема суб’єктивно зрозуміти, що тобі подобається більше як мова та що саме ти хочеш робити. Якщо ти хочеш займатися беком, то це дискусійне питання, що краще підходить, в інших же аспектах маєш розуміти: подобається одразу мати результат — js, бо це фронт, також вимагає деякої творчості і навичок комунікації, бо тобі треба буде багато спілкуватися з дизайнерами та бекендерами, описуючи їм, що має повертати апішка. + з JS’ом є купа додаткових інструментів типу всіляких TS, Webpack, Babel, з python в цьому плані, як мені здається, простіше, але це не дає такої самої гнучкості, з іншої сторони це однозначніше і простіше.
Раджу не судити мову за синтаксисом, мені раніше теж не подобалося ставити «;» та «{}», але згодом я змінив свою думку і тепер мені важко дивитися на синтаксис python, хоч починав я і з нього :).
Стосовно твоїх претензій: js теж є дуже популярною і гнучкою мовою, js теж має купу модулів, але вони націлені на конкретні цілі, а на все підряд, як у Python(тут і для QA і для DS модулі і т.д.), стосовно багів у лібах, які ти знайшов — це не проблема мови, особливо якщо ми говоримо про ліби які не є хоч трохи серйозними.

я б радив вчити 2 мови, навіть курси на це розраховані www.edx.org/...​ith-python-and-javascript

JS конечно, обязательно Node.js и Typescript

Обидва напрями популярні і з роботою проблем не буде який би Ви не обрали. Тут головне щоб подобалось і було бажання поглиблювати знання і зараз і після отримання першої роботи, тоді проблем з працевлаштуванням не буде.
З приводу кількості вакансій то це палка з двома кінцями, якщо технологія А популярніша ніж технологія Б і має більше вакансій то і конкуренція зазвичай вища. А конкуренція при отриманні першої роботи не завжди адекватна, може бути проблемою просто отримати запрошення на співбесіду і Ви не матимете навіть можливості показати свій рівень підготовки.
П.С. Ну і варто розглядати не тільки вакансії для трейні/джунів, по перше ці лички не дуже чіткі і відрізняються від компанії до компанії, і по друге компанії часто самі готові розглядати кандидатів різного рівня незважаючи на те що вказано у вакансії, головне попереджати заздалегідь що ваші навички не дотягують до рівня у вакансії, а то інтерв’ювер може не знати що ви претендуєте на джуна і забракувати як мідла.
П.П.С. І не треба нехтувати англійською, її треба прокачувати з такими ж зусиллями як і технічні навички (якщо не більше перед отриманням першої роботи). З англійською (не обов’язково ідеальною, головне розуміти співрозмовника і вміти самому говорити) кількість вакансій набагато вища і першу роботу отримати буде набагато простіше.

Хочу добавить, что мне 33, и время для меня течет иначе чем для 20-летних. А еще новые знания даются мне туговато.

fullstackopen.com/en — дуже рекомендую. Мова — то вторинно для початківця

Глянул на дизайн, подумал что freecodecamp на новом домене:) Нет, изучение на английском это беда. Сначала нужно напрячься, чтобы понять другой язык, а потом напрячься, что бы понять сам материал. Это не каждому дано...

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

Вчити vue чи джангу, чи джумлу, чи go, чи ще щось — це питання без однозначної відповіді. Обирай технології, які більше подобаються, і в яких є великий попит на ринку праці. Продивися вакансії, які стеки вимагають, обери один стек самостійно, і заглиблюйся в нього, поки не отримаєш роботу. Вчити різні напрямки, мови на початку забирає купу часу і віддаляє від отримання першої роботи. Коли в чомусь одному нормально розберешся і отримаєш досвід в комерційному проекті, з іншими піде дуже легко.

Обирай технології, які більше подобаються, і в яких є великий попит на ринку праці.

так вот человек и спросил мнение насчёт какой стек интереснее/удобнее и на что больше спрос/перспективы

На що більше попит — треба переглянути вакансії, буде краще розуміння ситуації, ніж читаючи відгуки людей, які рекомендують технології, з якими самі працюють, а ситуацію з іншими не знають. Цікавіше/зручніше в кожного своє, знаю людей, які працювали і з бекендом і фрондендом, але кожен зупиняється на чомусь своєму, причини у всіх різні. Наприклад, рекомендувати вью, бо він цікавіший джанги, або го, бо він «швидший» пітона — це суб‘єктивна думка, яка підкріплюється однобокими аргументами. А таких рекомендацій купа, і слухати їх не варто.

На що більше попит — треба переглянути вакансії, буде краще розуміння ситуації, ніж читаючи відгуки людей

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

Я думаю, що топікстертер зможе побавитися з фільтрами на джині, що дасть хоча б поверхневе розуміння ситуації. І це буде краще, ніж читати коменти, де просто пишуть назви мов.
Заодно буде розуміння про суміжні технології, які вимагають разом з вью/джанго...

. І це буде краще, ніж читати коменти, де просто пишуть назви мов.

 и при этом «английский язык» так никто не написал)

Коротка відповідь: спробуй написати щось і на пайтоні і на джс та обирай те, що більше сподобається.

Довга відповідь: ти скоріш за все хочеш дізнатись що більше сподобається тобі з цих двох мов і піпл на доу не знаючи тебе особисто буде відподідати що подобається їм. Це швидше за все не те що ти питав. Як на мене, вибирати мову суто з практичних аспектів і іногруючи особисті враження це вірний спосіб влаштуватись на роботу від якої блювати хочеться і повністю вбити мотивацію. Що пітон що джс — дуже популярні мови, мають дуже популярні стеки (навіть якщо вибішує джанга є купа інших стеків — працюю з пітоном вже 8+ років і ніколи з джангою професійно справ не мав) тому практичний аспект для них можна винести за дужки і обирати суто за принципом подобається — не подобається.

Скажем так, питон нравится. Но у него бешеная популярность >>> много конкурентов.
В ФБ на одну из групп питона подписано 500к человек.
А 7-часовой ролик (походу 1 заход = 1 просмотр) на ютубе, по которому я учил основы питона, в начале февраля имел 600к просмотров, сейчас 2 миллиона.

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

Возможно мнение не популярно, но большая популярность и большое кол-во конкурентов вас беспокоить не сильно должно. Один разработчик за час своей работы генерирует минимум столько же работы для еще одного разработчика, то есть выполненная работа генерирует еще больше невыполненной работы. Предположим, что эти 500к человек написали какой-то код, который кому-то придется поддерживать/ревьювить/улучшать + разрабатывать новые фичи и продукты, а значит спрос на новых разработчиков будет только расти.

Если на одну вакансию будет 16 соискателей шансы найти первую работу быстро падают не говоря уже о уровне зп. Спрос есть на людей с опытом и навыками а не на джунов

Думаю, останні кілька років в Україні джунам та мідлам на Python важче знайти роботу, ніж джунам та мідлам на JS.

JS+Solidity+2years=$2k

Капец, задал вопрос, во что углубиться. А тут люди предполагают, что я гений с 50-ю часами в сутки...

Сделай сайтик — блог с авторизацией и SQL базой. Сам, от начала и до конца. Потом джуном. Технология/язык без разницы.

То есть потенциал python+django == js+vue ?

Python+django+MySQL, React.js/Vue.js/Angular + PostgreSQL, возьми какой нить базовый мануал и попробуй кастомизировать результат, посмотри как работает запись/чтение в базе данных, сделай пайплайн, чтобы само деплоилось при коммите в ветку и так далее....

Python+django+MySQL

Насколько знаю с питоном в основном PostgreSQL юзают, а не MySQL (хотя это наверное непринципиально на начальном этапе).

React.js/Vue.js/Angular + PostgreSQL

А вот тут наверное скорее не PostgreSQL, а MongoDB , ибо если чисто js-стек (с нодой), то наверное надо будет знать MEAN / MERN / MEVN — стек.

Кстати, не могу понять, почему все фапают на монгодб.
То что подключение идет на другой сервер, меня коробит. Например для телеграм бота, это большая цепочка.

Пользователь > хаб ТГ > сервер с ботом > МондоДб > сервер с ботом > серв ТГ > пользователь.

Или Монго не только онлайн-версия есть?

Ну просто MongoDB — самая распространенная NoSQL база данных насколько знаю, и с node.js она вроде чаще всего используется (могу и ошибаться).

Или Монго не только онлайн-версия есть?

Ну ее можно и к себе на комп установить — www.mongodb.com/...​ration/install-community , настроить и юзать, например, в рамках MEAN ru.wikipedia.org/...​iki/MEAN_(веб-разработка .

Наверно, хочется варианта как sqlite.

Потенциал это сам навык программирования и понимания технологий конкретный стек уже вторично

C#, Go, TypeScript, Flutter

учи два. сейчас в школах по новому стандарту параллельно три языка учат.

ну такое себе, чем уже фокус, тем качественнее результат.

фокус можно позже. в процессе и будет понятно куда фокус.

Сказал тот что убежал с фронта

Він ж рубіст з Дніпра, в них там особливі смаки. Нетрадиційні, можна так сказати.

Маєшь якісь проблеми з рубістами з Днепра?

Та ні, я підтримую європейські цінності. Чим більше в нас буде рубістів — тим швидше нас візьмуть в Європу)

На жаль, я натурал(

То чого ж ти про нетрадиційні цінності заговорив?

Ну бо про рубістів всі знають)

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

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