6

Программирование, как хобби. Какой язык учить?

Всем привет.

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

Я хочу научиться программировать и очень интересно почитать мнения опытных в этом вопросе людей.


30 лет, ИПшник. ИП не связанное с программированием или IT вообще никак. Есть некоторое количество свободного времени в течение рабочего дня, которое хочу занять учёбой.

В детстве меня сильно увлекали компьютеры, устанавливал систему себе и всем знакомым.  Сдавал информатику, как экзамен в 9 классе. В общем, долгое время меня эта тема интересовала, все думали, что пойду учиться или на программиста или на что-то, связанное с компьютерами.


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

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

Я начал читать про разные языки программирования и где они применяются. Много терминов, разной степени непонятности. Но если правильно уяснил, то в ОЧЕНЬ упрощённом виде как-то так:


Java - enterprise и android (enterprise это, вроде, разработка и поддержка крупных приложений для крупного бизнеса).

Python - data science и, вроде, написание скриптов, а если python+jango, то это сайты. Пайтон везде рекомендуется, как самый простой и востребованный на сегодня язык.

Javascript - frontend (то, что видит пользователь на экране).

PHP - создание сайтов.

Дальше я стал смотреть краткий синтаксис этих языков и вспомнил, что в школе немного учил Турбо Паскаль.

Помню, что там объявлялись переменные  таким образом (только что утащил картинку из гугла):

И что-то подобное я увидел в Java, где переменные объявляются почти также:

То есть, я увидел что-то знакомое, привычное и мне оно показалось более комфортным. Кажется, это называется статические переменные, в отличие от, например, динамических в Python.

Я быстро проглядел синтаксис Java показался мне на глаз приятнее, чем синтаксис Python, хоть и более громоздким.


Хотел начать учить Java, но начал читать про то, что его нереально как-то использовать и практиковать в соло-программировании. Java это всегда большая команда, где программист никогда не начинает новый проект, а лишь поддерживает кусок куда другого, большого проекта. И если ты не работаешь программистом в команде, то лучше взять какой-то другой язык, скриптовый язык.

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


Спасибо Вам большое, если дочитали.

Лига программистов

2.3K постов12K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества

18
Автор поста оценил этот комментарий

Никакой.

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


Возьмите, например, книгу Грокаем алгоритмы.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Немного погуглил. Все книги по алгоритмам в программировании, требуют начальных знаний по программированию. А все базовые книги по программированию советуют иметь начальные знания по алгоритмам. Замкнутый круг ))

показать ответы
1
Григорий Цуцанский
Автор поста оценил этот комментарий

1С изучи. Это самое важное!

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо за ответ, но нет необходимости, а в качестве саморазвития и хобби он не показался мне интересным.

показать ответы
1
Автор поста оценил этот комментарий

не учи 1С он пошутил ))))

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я понял :)

показать ответы
2
Автор поста оценил этот комментарий

Телеграм-бот для задачи поиска старых фото не является реальной задачей. Тренировочной - может быть, но реальной я бы её не назвал.


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


Честно говоря не верится что эта задача возникает очень часто. Клиенты получают фото, скидывают себе на диск, хранят годами. Да, может выйти из строя диск или можно случайно удалить фото, но это редчайшие случаи. В итоге имеем автоматизацию задачи, которая случается... сколько раз в единицу времени? Раз в месяц? В два месяца? И на выполнение которой руками тратится сколько времени? 5-10 минут? Воткнуть диск с архивами, вбить имя клиента в поиск по каталогам, найти нужный, залить на хостинг, написать мейл клиенту. Вы же предлагаете развесистую систему с телеграмом, авторизацией и поддержкой перманентного доступа 24/7 из внешнего мира ко всему архиву фото, нужного единицам клиентов на весьма нерегулярной основе. Оверинжиниринг как он есть.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

1
Автор поста оценил этот комментарий
Начни с постановки задачи, пусть самой простенькой, например, небольшой сайтик для своего ИП написать или программку учета на комп, в общем, что-то полезное и нужное именно тебе. Дальше под конкретную задачу подбери инструмент, то есть язык программирования (среду разработки), и вперёд: Гугл, форумы и книги в помощь. Это же, как я понял, хобби, а значит оно удовольствие должно приносить
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

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

показать ответы
0
Автор поста оценил этот комментарий

Я наверное сильно опоздал, но напишу по своему опыту. Я в свое время выбрал джаву (мне 29 лет было) и не пожалел (выбор стоял с питоном).
Питон - действительно довольно простой язык, и в него легко войти, но вакансий к нему - сильно меньше, особенно джуновских. Так было 6 лет назад так и сейчас. Зайдите на хх, вбейте 'java junior' и 'python junior'.
Вам выдаст: 206 за джаву и 315 за питон. ОГО, питон выигрывает !!! (типа), по факту же нет, питон очень часто упоминают в описании вакансий "как плюс - знание питона" поэтому нужно отключить поиск ключевых слов в описании.
И тогда картина другая: 52 вакансии java junior против 15.

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

раскрыть ветку (1)
Автор поста оценил этот комментарий
Привет. Спасибо за коммент.
А ты работаешь уже на джаве?

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

Но у меня нет в планах становится разрабом. Просто для себя учу.
показать ответы
3
Автор поста оценил этот комментарий

Тем что он умер лет 15 назад и ничего хорошего автор в изучении динозавра не вынесет. Я не спорю, он вероятно научится базам программирования, но что он потом с этим языком делать будет? Изучить паскаль, чтобы потом переучиваться на что-то современное? Отличная идея! Как только столкнётся с проблемами, а он с ними столкнётся, окажется что и помочь ему будет некому.


ТС @Edmann91 я тебя прошу, пожалуйста не слушай тех кто тебе советует Паскаль и Делфи. Тут какой-то филиал преподов из универов собрался, если такое предлагают. Я за последние 10 лет реальной разработки ни разу не встретил кода на этом языке, ни людей которые на нём пишут, ни реальных востребованных вакансий. Ты об этом точно пожалеешь.

Вот смотри тут https://insights.stackoverflow.com/survey/2021#technology-mo.... Делфи используется 2.1% проектов. Просто нет. Это почти тоже самое что блядь Кобол выбрать в 21м веке.


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

Нравится Java? Отличный выбор, бери её. На жаве можно писать практически всё. Команда программистов для своих мини проектов не потребуется. Питон? Тоже самое.

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

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо тебе большое за развернутый ответ.

4
Автор поста оценил этот комментарий

Я бы рекомендовал Kotlin - он достаточно прост и выразителен, как по мне, порог входа не должен быть высок. Он базируется на jvm (т.е. java), поэтому рано или поздно java, скорее всего, придется изучать, если будет желание остаться в этой нише, но это будет позже. Но в отличее от python или js, kotlin не привносит "вредных" практик (вредных для новичков). Я имею в виду, что в kotlin честное и полноценное ооп со статической типизацией, что сразу учит писать более качественный и надежный код.

Но это чисто моё мнение, всё зависит от поставленных задач.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Если я правильно понимаю термины, то статическая типизация (где переменным объявляется тип при написании кода, верно?) мне даже больше нравится. И визуально синтаксис котлин выглядит приятно, но читал именно обратные советы, дескать, котлин и джава очень похожи друг на друга, но по джаве намного больше информации в интернете, поэтому проще учить джаву и с неё перебираться на котлин, а не наоборот. Могу, конечно, ошибаться.

показать ответы
0
Автор поста оценил этот комментарий

Если хочется именно что обучится программированию, то, на мой взгляд, ничего удобнее, правильнее и проще чем Python просто не существует.

Если хочется освоить именно внутрянку работы ПО, работу с памятью, то C или C++.


А дальше уже идёт выбор какой-то ниши: фронт, бэк, нейросети, big data и прочее. И там как-правило основные инструменты известны.


Параллельно языку полезно читать про алгоритмы и подходы к проектированию. Лично мне очень понравилась книга Безопасность by design, но она рассчитана на программистов с опытом.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Сперва хотел именно Пайтон, так как его рекомендует почти весь интернет, где не посмотри :)

показать ответы
18
Автор поста оценил этот комментарий

Никакой.

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


Возьмите, например, книгу Грокаем алгоритмы.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо большое. Интересно.

0
Автор поста оценил этот комментарий
Соглашусь, питон в свою очередь чуть легче, ява обширнее.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо. А что можно на Джаве сделать для себя, если ты не командный разработчик?

показать ответы
Автор поста оценил этот комментарий

Если интересно практическое применение, то надо что то делать на практике и тут же применять. Если сайтик - то typescript, если мобильное программирование - swift или kotlin, если железо и ардуино -  C.


Если хочется именно учиться программированию, то лучше начинать с lisp или PLT Scheme. Потом смотреть в сторону Haskell.


Java, C# - избегать в любом случае. Это тупиковые языки, которые скоро вымрут и интереса для программиста не представляют

раскрыть ветку (1)
Автор поста оценил этот комментарий

Можете как-то объяснить про  Java? Он везде в топах, буквально ВЕЗДЕ, а Вы пишете, чтт скоро вымрут.

показать ответы
2
Автор поста оценил этот комментарий

Если нравится Java, советую C#. Хороший, постоянно развивающийся язык, на нем можно писать десктопные приложения под винду, веб, игры с юнити. Относительно простой, удобный и производительный.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Благодарю.

1
Автор поста оценил этот комментарий

Не замкнутый, а параллельное изучение) Есть неплохие курсы Тимофея Хирьянова по С, Питону на YouTube.


Алгоритмизация это знания и опыт, а кодирование (написание программ) это навык, как на велосипеде ездить. Нужно писать много одинакового кода.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо Вам :)

4
Автор поста оценил этот комментарий
Если скрипты и боты : java, pyton
если игрострой : unity, godot, gms
если приложения : С# , Delphi
Сайты: php

Думаю как то так
раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо :)

показать ответы
4
Автор поста оценил этот комментарий
Это язык, что ты на нем напишешь, зависит только от тебя)
раскрыть ветку (1)
Автор поста оценил этот комментарий

Да, я понял из комментариев, что реализовать одну и ту же вещь можно на разных языках программирования)

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества