Как стать автором
Обновить

Комментарии 29

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

Так что берём глобус, крутим и тыкаем в случайное место - по первой букве язык и выбираем. Главное не попасть в Афганистан 😅

Вот-вот. На себе прочувствовал, что при решении задач нужно мышление соответствующее, а синтаксис - это уже второе.

А - Алгоритм, самое базовое при программировании.

Я новичок, который написал себе приложеньку на джаве, которая очень помогает в работе, можете бросать тапками, но я где то на 3 месяц не частого кодинга понял, что понимаю логику того, что мне нужно сделать, но не знаю способа реализации. К примеру вот я хочу писать данные в файл в несколько потоков, но так, чтоб разные потоки не делали этого одновременно. И со временем пришёл к выводу, что идеально было бы иметь общий буффер, в который бы эти потоки писали данные, а параллельно вычитывать их оттуда и уже писать в файл. Но как это реализовать, это боль просто... И вот часто, когда пишу код, то натыкаюсь на такие вот задачи, логику которых я выстраиваю, а вот кодом выразить не могу. Вывод сделал для себя такой - если выучить все методы всех библиотек в джаве, то все решаемо, но мне лень

Скольких гениев я ни возьму, никто мне не ответит, как сделать так, чтобы запрос на SQL был как минимум одну секунду. То есть никто не знает паттерн запросов, который бы позволил честно проверить работу БД в стрессовых условиях без необходимости делать дудос...

Каждый язык создан для своего. Не понимаю секретов роста популярности сишных языков. Не понимаю также и в чём смысл рассматривать Java сегодня, когда все давно переехали с Java на Kotlin.

Думаю, лучше всего научить думать может именно Котлин, зачёт своей строгой типизации и крутых встроенных методов.

На котлине нельзя сдавать ЕГЭ, так что котлин в пролёте.

когда все давно переехали с Java на Kotlin

Сильное заявление. Доказательств у вас, конечно же, нет.

Ой, прошу прощения...

*Когда все давно переехали с Java,Gradle,XML на Kotlin.

Так будет лучше. Нужны пруфы? Создай проект с дефолтными настройками в последней версии Android Studio и найди хотя бы подобие следа Java там. Подсказка: очень многое В ПРИНЦИПЕ заменили на Kotlin, и поэтому ты такого не найдешь.

Почему другие адепты не переехали - не хотят видимо. А Хуавей под санкциями. Но это не освобождает от того факта, что у Java преимуществ нет кроме как в случаях с отсутствием выбора Kotlin.

И да, Kotlin сейчас развивают в таком направлении чтобы он заметил Питон) да и JS тоже. Всякие там реалтайм блакноты и тому подобное...

А ещё развивают в таком направлении, чтобы он был по настоящему мультиплатформенным - KMP.

Таким образом это делает его идеальным языком как в плане классного синтаксиса, так ещё и масштаба распространения.

Андроид разработчики != все.

Для новичка главное не сойти с ума. Поэтому главное для первого языка: порог входа как можно ниже. Это раз.

Второе. ООП это не монополия. На Питоне можно учить и ООП, и функциональное программирование.

О разнообразии сфер применения - тут и говорить нечего.

Функциональное программирование без типобезопасности? Ну, такое себе. Да и не является питон более функциональным, чем джава, они примерно одного уровня.

Я бы вообще в функциональное программирование новичкам без спецподготовки не рекомендовал обращаться.

Можно заходить, как говорится, с туза) Я в джаву зашел из баша, где до этого писал скрипты и как то раз наткнулся на то, что очередной мой скрипт выполнялся слишком уж медленно и при этом жрал просто тонну ресурсов. До последнего верил в то, что смогу его оптимизировать, но нет, в какой то момент я понял, что оптимизировать вот реально уже нечего, скорость увеличилась раза в полтора, а мне нужно было, как минимум в 4. И вот после долгих раздумий и мук выбор пал на джаву, так как на ней написано большинство наших рабочих АС, да и я когда то неудачно заходил в плюсы, потом в сишарп и уже был немного знаком с принципами ООП. В общем первое время я жестко плевался и мой код был похож на какую то мусорку, на которую сверху накручивалась другая мусорка. Смотрел в сторону знакомых питонистов и завидовал тому, как быстро они решают разные задачи, которые джава с такой легкостью решить не может. Сейчас же, спустя где то пол года ленивого кодинга я начинаю понимать, где был не прав и это приятно, да и в принципе, к моему удивлению джава затянула. Сейчас вот переписываю свою прогу, удаляя огромные куски кода, порой немного перепиливая логику и такой чистый код мне нравится, как и в принципе решать какие то сложные задачи, с этим связанные. Думаю, когда уже стану более менее неплохо писать код, то начну изучать пайтон, ибо на нем можно писать все то, что я пишу на баше, но не так ресурсозатратно для системы, да и возможностей скриптинга больше

Не нужно. После надо расти в другую сторону. Питон по сути - баш++, шаг назад :)

Я бы охарактеризовал Питон как язык обработки и подготовки данных, в первую очередь. Например, с его помощью можно пересоздать видео, скажем, заменить встроенные французско-английские субтитры на французско-русские. Очень удобен он для парсинга сайтов, допустим, скачивание онлайн-словарей с обходом блокировок сайта. И т.д. и т.п. А вот для создания десктопных оконных приложений с графическим интерфейсом он уже не очень хорош. Да, подобные программы есть и работают, но очень тяжело, как 1С8х по сравнению с 1С77.

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

 Поэтому, я бы советовал начать изучать программирование параллельно C++
и Python.

Новичку параллельно два языка это точно крыша поедет.

Не нужен C++ для написания десктопных приложений. Это как гвозди микроскопом забивать. В начале-середине 90ых, в эпоху взлёта десктопа, писали на C/C++ просто потому что ничего другого вменяемого тогда и не было. Делфи, Жава - вот попытки избавиться от этого микроскопа. У C++ исторически совсем другое применение.

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

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

 Например, чуть выше написано, что "параллельно два языка это точно крыша поедет". Не поедет, по крайней мере, не у всех. Может быть, у человека просто мало вундеркиндов встречалось на его жизненном пути. А я на них насмотрелся на мехмате МГУ. Талантов у нас, оказывается, очень много. Хотя, у одного студента крыша реально поехала, и его отвезли в Кащенко. Потом он восстановился, но его мозги "потекли" снова и ему пришлось бросить математику. Нам всем там было действительно трудно, даже участникам международной математической олимпиады (которые умудрялись вылетать за неуспеваемость), но, ничего, большинство выжило и здравствует до сих пор.

 Поэтому, позвольте с вами не согласиться. С++ с фреймворками, лучший язык для написания десктопных приложений. Если вы имели дело с компьютерным учетом на предприятиях, то лучшая программа там, как ни странно, это 1С77 (рискую напроситься на кучу минусов от фанатов "восьмерки"). А эта "семерка" написана на С++ / MFC. В умелых руках, с использованием внешних компонентов, с ней можно делать чудеса.

 Хорошо, не хочешь использовать 1С - пользуйся бесплатными учетными программами, для сдачи внешней отчетности. Я имел дело с десятками подобных программ, на чем только не написанных, включая ваш перечень сред разработки. Ни одна из них, повторяю, ни одна не имеет большего удобства, чем работа с собственными конфигурациями на 1С77.

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

А эта "семерка" написана на С++ / MFC. В умелых руках, с использованием внешних компонентов, с ней можно делать чудеса.

Только причём тут C++? А если эту "семерку" писали программисты с бородой, значит надо отращивать бороду чтобы получались хорошие программы?

Осваивать C++ не грех. Но грамотный инженер просто обязан понимать и области применимости различных инструментов.

Да, С++ универсальная и фундаментальная система программирования, на ней можно делать все, что хочешь.

Всё что хошь можно сделать и на Асме. Но почему-то не делают же?

> Только причём тут C++?

Разговор, вроде бы, пошел о целесообразности написания пользовательских программ, с графическим интерфейсом, на С++. Например, учетных программ, уровня предприятия. Сейчас Си с плюсами для этих целей практически не используется. В результате, мы, в своих конторах, видим кучу бестолковых программ, предлагаемых внешними органами для создания в них нужной им отчетности. Таким программ десятки, если не сотни, но работать с ними почти невозможно. По качеству и удобству работы они хуже, чем самописные конфигурации на 1С77.  Зато написаны на самых продвинутых и модных средствах разработки. Единственное достоинство которых это худо-бедно обеспечить импорт данных, цель которого сдача отчетных форм, в формате, требуемом внешними органами. плюс печать в нужном им виде. Всё! Если там нужно ввести несколько человек, то ещё куда не шло, а для учета сотен сотрудников они, практически не приспособлены. А некоторые программы, типа электронных больничных листов, даже нормальный импорт данных не поддерживают, чтобы внести туда данные, нужно применять чуть ли не хакерские методы.

Поэтому хороших учетных программ, с удобным графическим интерфейсом пользователя, практически нет. Ибо никто подобными проблемами не заморачивается. Пишут ПО по принципу: "Нам с ним не работать!".

Хотя, откровенно говоря, все программные инструменты, окромя С++ с фреймворками не любят GUI и реализуют его через "одно пикантное, не побоимся этого слова импозантное место". Если вы не согласны с этим тезисом, то приведите примеры программ, написанных не на плюсах, с классным GUI, скажем, для реальных учетных задач. Скорее всего, это, если и будут, то монстры типа 1C8x (в основе своей тоже "приплюснутой"), гигабайтных размеров. Вопрос удобства с которыми оставим на совести их разработчиков.

> Всё что хошь можно сделать и на Асме. Но почему-то не делают же?

Вы бы еще вспомнили машинные коды. Да, можно, но не нужно! С++ с фреймворками - это оптимальный уровень для разработки программ с удобным пользовательским GUI. Я, лично, в качестве легкого фреймворка использую WTL. Кое-что писал и на чистом C++ / WinAPI, хотя ныне больше склоняюсь к WTL. Тем не менее, имею представление и о MFC/ Win32++ / wxWidgets и Qt. Просто для моих задач пока хватает минимальных вещей.

По качеству и удобству работы они хуже, чем самописные конфигурации на 1С77.

Подозреваю, если бы эти же люди писали их на C++, то эти программы просто не запустились бы.

Надо отдавать себе отчёт что 20 лет назад в программирование шли увлечённые люди, поэтому и качество работы у них было на высоте. Сам язык тут не причём. Точнее даже наоборот - C++ представляет такие прекрасные возможности прострелять себе ноги, что у молодого поколения смузихлёбов скорее всего просто ничего не заработает.

Эта ваша жава - полный отстой, визуальных компонентов - меньше чем у Дельфи 1. Дельфи - хорошая среда, но платная и не кросс-платформенная. Поэтому для нормальных программ лучший выбор - Qt, хотя и там нормальный интерфейс трудно сделать.

ну я новичком выбрал PHP и не пожалел вообще. Но вообще, я тогда учился в 9 классе. И думаю, что язык бы порешал не сильно. Просто очень хотелось создавать свой "личный кабинет", работать с базами данных и вот это вот всё. Для меня это поначалу все казалось какой-то магией. Но php выбрал именно из-за его простоты, и из-за того, что по нему контента было просто огромная куча. Ну и вошёл как по маслу.

Сейчас вот основной стек php/golang, к фронту стараюсь не притрагиваться вообще. Ну разве что на jquery лапши понаписать. Пробовал и c#, и java - не моё. Сейчас вот изучаю UE5 вместе с c++ чтобы перекатиться в геймдев в будущем.

Но мне кажется, что каким бы не был первый язык - ничего бы сейчас не изменилось. Всё, что осваивал на php - точно также усваивал бы и на других языках. Просто на нём всё было быстрее - огромное кол-во стандартных функций, сторонних библиотек и несчетное кол-во статей по пхп просто облегчили вкатывание, когда для своего первого бложика надо было делать минимум усилий и в основном писать просто бизнес-логику - и оно всё работало само по себе. Помню когда первого бота для вк написал, который мне в личку погоду присылает перед выходом в школу - счастью предела не было. А ведь для этого вообще не надо было ничего - просто делаешь file_get_contents() какого-то там апи, затем json_decode() и затем file_get_contents() чтобы через vk api отправить сообщение. И оно просто работало.

Какой же я кайф получал в первые месяцы изучения пхп. Казалось, что я всемогущий.

Хз, зачем это высрал всё. Просто выпил пива и захотелось написать.

Джава сейчас хороша, пожалуй, только как референсный язык для jvm. Ну и легаси поддерживать. У Котлина кривая обучения поглаже будет, пожалуй, а код почище. И в современные концепты программирования проще въехать.

Выбрать язык надо исходя из задачи. У новичка главная задача сдать ЕГЭ. Большинство репетиторов, готовящих в ЕГЭ рекомендуют питон, т к. по их мнению из всех языков, разрешенных на экзамене, питон лучше всего подходит для решения тех задач которые там даются.

Нужно просто поделить новичков по их уровню интеллекта и способу самопознания.

Объективно тем, кто не любит копать глубоко, а любит быстро достигать финиша - не надо начинать с java. Им наверное вообще не надо идти в разработчики. Пока они не поймут, что это не та сфера, где можно не напрягаться и достигать высот. Им лучше в блогеры податься. Их единственный путь в разработку через тестировщика, а там python подойдёт.

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

Для математиков - Rust какой-нибудь выбрать сразу. И книжки по алгоритмам. А чё мелочиться то. Человек башковитый. И лучше снизу вверх компьютер познавать. А там и java и python и go ждут тебя и c#.

Гумманитарий - изучи как с чат gpt на python + js лепить чего-нибудь. Если не смог даже это - иди в блогеры. Сними Ютуб канал, как ты пытался войти в айти.

Для тех кто пошёл в программисты через ВУЗ - там и так напичкают всем подряд. Главные знания они будут не про код и языки. А про информационное пространство. Что есть компьютер, сети, безопасность. С помощью любого языка изучайте алгоритмы. Учитесь учиться - вот что важно. И тогда после ВУЗ-а вы не услышите "Забудь всё что знаешь". Если голова варит - возьмитесь за Go или Rust. Не очень варит - python, js, c#. Не нравиться термин варит голова - java, и создайте свой термин.

И самое главное - учение свет, а не учение - неучение. Дожимать задачу до конца надо всегда. Если не обладаете таким навыком - не надо выбирать язык какой учить. Надо научить себя учиться и добиваться результатов. Качаем супер сложную компьютерную игру и проходим на супер сложности пару уровней. Делаем забег на 5 км просто так. Понравилась девушка/парень - добиваемся до тех пор пока на ракете не пошлют на Марс. Когда все барьеры разрушены в голове - вы готовы начать выбирать язык.

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

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

Вкинем немного хардкора, первый язык был ассемблер, в силу специфики кроме самого языка в процессе приходилось изучать и аппаратную часть. Потом были perl, c/cpp и много разного, сейчас в основном java, но я очень рад, что первым был именно asm, все "сложные" места других языков, ссылки, потоки, работа с памятью, стеки, куча и пр. ясны и просты

Зарегистрируйтесь на Хабре, чтобы оставить комментарий