LINUX.ORG.RU

Куда двигаться дальше, если попробовал много языков, но нигде не смог углубиться?

 


0

3

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

За последние несколько лет я пробовал изучать Python, Java, C#, C, C++, Go и JavaScript. Везде получил какие-то базовые знания, где-то чуть больше, где-то меньше, но ни на одном языке так и не задержался надолго. В итоге у меня получилась довольно разрозненная база и ощущение, что я постоянно начинаю что-то новое, но никуда это не довожу.

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

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

Поэтому вопрос к тем, кто уже прошёл этот этап: как бы вы выстроили обучение в моей ситуации? Стоит ли сейчас остановиться на C++ и сначала системно закрыть пробелы, а потом идти в системщину? Или лучше выбрать конкретный большой проект и изучать всё необходимое по ходу?

И ещё более общий вопрос: есть ли смысл вообще продолжать пытаться идти в программирование, если я столько раз начинал разные языки и ни на одном не смог надолго задержаться? Может быть, мне стоит попробовать другое направление, а не продолжать бесконечно искать «своё» в программировании?**

Буду особенно благодарен за советы не в стиле «учи X, потому что он востребован», а за личный опыт: как вы сами наконец выбрали направление, перестали метаться между технологиями и поняли, что хотите заниматься именно этим.

Если есть конкретные книги, курсы или проекты, которые хорошо подходят для перехода от разрозненных знаний к нормальному фундаменту, тоже буду благодарен.

Перемещено hobbit из general

Ответ на: комментарий от zagran_passport

есть исторические(на ряду с иными) отличия между университетом(от болоньи и даже дома мудрости у багдатки и можид прогулаками парка акада) и тех институтом хумбульда(братана министра)

ты сыт духовно а душевно а физисиски?

уже восемь не равновероятных вариантов траектории

делай апли-залипухи - вплоть до однострока-скриптика(нужная по месту инструкция с параметрами доставляющая пользу)

большой код чаще всего обусловлен дефицитом офицесов(не по лычкам а по сути) и избытком пихоты(не по лычкам а по сути)

т.е. практикуй и подкуривай опыт человейника в направлениях текущей твоей практики - чем более абстрактно тем как приправа тоньше к блюду но и 10 литров воды попсятины подрывают клеточную помпу

qulinxao3 ★☆
()

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

SpaceRanger ★★★★
()
Ответ на: комментарий от qulinxao3

Тема: Классический универ vs гумбольдтовский НИИ. И почему enterprise-код пишут пехотинцы?

Накатила тут философская суббота (хоть и вторник), решил набросить и обсудить исторические отличия в когнитивных траекториях. Короче, в чём принципиальная разница между классическим универом (начиная от Болоньи и заканчивая арабскими «Домами мудрости» и прогулками в садах Академии Платона) и гумбольдтовским технологическим институтом? По мне так:

  1. Старый универ — это чисто про «поговорить», сохранение канонов и схоластику. Там студент был заказчиком, который просто башлял профессору.
  2. Гумбольдтовская модель (привет брату министра) — это когда обучение намертво привязали к исследовательской практике (Forschung und Lehre). Ты не просто зубришь маны, ты пилишь коммиты в науку вместе с профом.

Отсюда вопрос к all: вы вообще как, сыты духовно, душевно и физически? Похоже, у нас тут нарисовалось как минимум восемь неравновероятных вариантов развития. Вместо того чтобы городить огород, предлагаю практиковать автоматизацию и пилить быстрые костыли/«залипухи» — вплоть до полезных однострочников, которые доставляют пользу здесь и сейчас.

И да, наболело про разработку. Огромные простыни говнокода и раздутые репозитории в энтерпрайзе — это всегда дефицит нормальных архитекторов («офицеров» не по лычкам, а по уму) и паркинсоновский переизбыток формошлёпов («пехоты»).

Проектируйте лаконично, курите опыт человечества. Чем абстрактнее код, тем он универсальней(и дороже в поддержке пехотой не умеющей в арифметику и кулинарию), как тонкая приправа к блюду. А если налить в проект 10 литров «воды» и попсятины — у вас просто клеточная помпа системы рухнет под нагрузкой.

Чтобы два раза не вставать, держите три полезных скрипта, которые бямы «юзают»:

  1. Найти 10 самых жирных файлов/директорий в хомяке, чтобы вычистить кэши: bash du -sh * | sort -rh | head -n 10 Use code with caution.
  2. Быстро поднять локальный веб-сервер без Nginx и прочего жира: bash python3 -m http.server 8080 Use code with caution.
  3. Глянуть топ-5 процессов по жору ОЗУ (когда клеточная помпа уже на пределе): bash ps aux –sort=-%mem | awk ‘NR<=6 {print $2, $4, $11}’ Use code with caution. Обсуждаем. Кастуйте архитекторов. Пехота — мимо.
qulinxao3 ★☆
()
Последнее исправление: qulinxao3 (всего исправлений: 5)

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

тут водопад дорог корректируй свои планы меньшими по времени итерациями - т.е. уреж леща в части скорости освоения при этом желательно «вести дневник» как меняется ожидаемая цель и обьём понимания

углубляйся в жизнь

qulinxao3 ★☆
()
Ответ на: комментарий от algo

Что тут называется «низким уровнем» ?

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

vM ★★★
()
Ответ на: комментарий от vM

на фортране можно писать на любом языке

именно поэтому бывает информативно натыкаться на код в синтаксисе реально очень hh(+)l языка в котором именно из за синтаксиса заточенного на некотую область приложения(ака application domain) какая нить низость для цвм вида +1 выливается чуть ли не словесное описание аксиоматики Пеано и прочей высокоуровневости реально обусловленное безблагодатностью сеньёр_тинейджер-архитекторов

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

qulinxao3 ★☆
()

Куда двигаться дальше, если попробовал много языков, но нигде не смог углубиться?

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

qulinxao3 ★☆
()
Ответ на: комментарий от zagran_passport

Если интересен, то стоит. Мне вот теоретически тоже Раст интересен, но я у плюсов ещё далеко не все современные фичи распробовал. Но тут дело такое, что для меня плюсы это такая надёжная рабочая лошадка, которая всегда вывезет и не бросит. При всех своих достоинствах и недостатках, порой выбешивающих.

Возможно, по верхам ты уже наскакался. Предлагаю подумать, какую реально полезную открытую программу ты сам бы хотел написать. Желательно такую, которую можно развивать продолжительное время, касаясь разных смежных областей. А там и язык будет подтягиваться. И C++ хороший выбор и Rust хороший выбор, я думаю.

Только не начинай злоупотреблять ИИ-помощниками раньше времени. Они очень полезны… для того, кто может посмотреть код и убедительно объяснить ИИ-помощнику, в чём он не прав. Я так несколько дней с Дипсиком дискутировал, он мне всё предлагал вставить в программу костыль вместо правильного решения. В итоге я его всё же переспорил, и он сделал правильно.:) (Но если что, это было не по работе, а в хобби-проекте, которым я занимаюсь в редкие минуты свободного времени.)

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от algo

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

hobbit ★★★★★
()
Ответ на: комментарий от algo

шмяк шмяк + агенты = продал в фирму «одногорца с той же долины» если штат 10к то куча людей осваивать(хотя бы палочкой потыкать для работы работанья) как итог - очередное эксклюзивное по со стабильным кэшфло

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

qulinxao3 ★☆
()
Ответ на: комментарий от vM

нет просто потом в колледже учился веб разработке, и както сошло на нет, а так нравилось чтото придумывать делать инженерное дело мне нравиться 100% это

zagran_passport
() автор топика
  1. Ты или знаешь C до уровня ассемблера, или ты не умеешь программировать.
  2. Сегодня заходить в айти без оглядки на ИИ мягко говоря опрометчиво. Ты должен учиться слушать бизнес и разрабатывать софт, который решает бизнес-задачи. Т.е. сразу выполнять работу аналитика, проектировщика, архитектора, кодера (это за тебя сделает клод), тестировщика (тоже клод) и т.п.

Если с С разберешься, то дальше все языки одинаковые (оно так и есть)

max_lapshin ★★★★★
()
Ответ на: комментарий от max_lapshin

Ты или знаешь C до уровня ассемблера, или ты не умеешь программировать.

s/программировать/кодить/

Тезис про «настоящие программеры только те, кто задро* в Си» устарел лет на 20+. Слишком много микроменеджмента.

А вот правило Гринспена still holds.

Сегодня заходить в айти без оглядки на ИИ мягко говоря опрометчиво.

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

anonymous
()

Ты мыслишь в корне неверно. ЯП - это последнее, что надо учить в программировании.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от anonymous

Не соглашусь с тобой.

Я говорю именно про программирование, ведь тебе надо уметь перекладывать жизненные ситуации на модели компьютера. Как ты можешь это делать, если не понимаешь битики и байтики?

max_lapshin ★★★★★
()
Ответ на: комментарий от max_lapshin

> Как ты можешь это делать, если не понимаешь битики и байтики?

Это важно и нужно. Но знание Си будет скорее мешать этому.

> модели компьютера

Модель Си — такой же абстрактный конь в вакууме, как Java. Она не ложится на устройство современного компьютера [1].

[1]: https://queue.acm.org/doi/10.1145/3212477.3212479

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 1)

как бы вы выстроили обучение в моей ситуации

прям щас я бы стал вайбкодером

x905 ★★★★★
()
Ответ на: комментарий от max_lapshin

в си реально портящий простой путь синтаксис в нужный местах подменяющий константное смещение - имя массива как адресс его нулевого элемента и указатель как переменнеую и прочий истерически обусловленный буккипинг

как реакция на преддыдушие сны разума Сишка отличный антидот жаль что у Томпсона была задача засунуть компилятор Фортрана аж в 4к оперативы отсюда пока Ритчи не прикрутил недоструктуры(чьи поля в лучших традициях pl/i были глобальными смещениями к любой базе) у Томсона разбивались все предыдущие попытки отвязять unix от конкретной железки

Сишка вполне годный переносимый структурный ассемблер однако тот же pl360 как введение в тему проще ибо опятже не путает констрантые смещения с перемеными указателями

qulinxao3 ★☆
()
Ответ на: комментарий от max_lapshin

Я говорю именно про программирование, ведь тебе надо уметь перекладывать жизненные ситуации на модели компьютера. Как ты можешь это делать, если не понимаешь битики и байтики?

Си - это больше про микроменеджмент, чем про низкий уровень. Каждый байтик, каждый указатель, каждый выделенный байт памяти - все нужно разруливать руками, и за этим лесом уже не видно деревьев. Я почему Гринспена вспомнил - чтобы хоть как-то уйти от этого «леса» и в нем не заблудиться, приходится каждый раз на Сях писать половину реализации общелиспа, если у тебя не «лаба» очередная, конечно. И так как было все время существования Си, так и есть до сих пор.

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

Да и касательно битиков с байтиками: перекладывать «битики и байтики» Си может, но т.к. он многоплатформенный, то там есть масса оговорок. А некоторые вещи там неинтуитивны, касательно «битиков». Почему, например, у >> и << приоритет ниже, чем у операций сравнения?

anonymous
()
Ответ на: комментарий от anonymous

за этим лесом уже не видно деревьев

Да, тоже проглючило. Наоборот, конечно же =)

anonymous
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария