LINUX.ORG.RU
ФорумTalks

Я тупой, что делать?

 


2

2

Не могу осилить ничего сложнее bash и php, просто не понимаю ЗАЧЕМ!?

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

Почитал новость о том, что в Linux приходит Rust, подумал, ну вот время для изучения C упущено, но сейчас начинается новая эпоха с Rust в ядре, чем чёрт не шутит, может стоит попробовать, авось, для ядра какие-нибудь приколюхи тоже смогу писать? НЕТ НЕ СМОГУ ПОТОМУ ЧТО Я ТУПОЙ(((((

https://doc.rust-lang.ru/book/ch03-01-variables-and-mutability.html#Затенение...

Затенение (переменных)

Я не понимаю что это и зачем это нужно.

fn main() {
    let x = 5;

    let x = x + 1;

    {
        let x = x * 2;
        println!("The value of x in the inner scope is: {x}");
    }

    println!("The value of x is: {x}");
}

Почему нельзя из main вызвать функцию, которая сделает это самое x * 2 и напишет строчку, зачем было усложнять и придумывать какое-то { }.

fn main() {
    let x = 5;

    let x = x + 1;

    x_multiple(x);

    println!("The value of x is: {x}");
}

fn x_multiple(x: i32) {
      let x = x * 2;

      println!("The value of x in the inner scope is: {x}");
}

За достоверность синтаксиса не ручаюсь.

Я ещё могу как-то понять типы данных, ну там, один байтик 255 максимальное число, два байтика уже 255 * 255 = 65025 максимальное число, четыре байтика 255 * 255 * 255 * 255... Прикольно конечно, да, что 4 байтами можно кодировать большие числа, как это делают во всяких JPEG, PNG и т.д. бинарных форматах, что можно одним символом " " (пробел) описать число 32 т.к. это 32 символ в ASCII таблице.

Структуры в расте ещё какие-то, почему нельзя обойтись обычными массивами для хранения данных.

Классы в PHP не осилил, Rust похоже тоже не осилю.

Ну и что теперь, обратно в дворники идти?

★★★★★

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

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

Так и что? Это не даст программы без багов

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

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

Я даже не знаю, как на это ответить

И не надо, лучше почитай Лема, Сумма технологий. А если читал и ничего не понял, тогда печально это всё.

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

Если оно будет совершать меньше багов, чем человеки, то это уже будет шаг вперёд.

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

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

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

А что, есть рунические языки программирования?

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

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

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

https://visualstudiomagazine.com/Home.aspx

.NET уже 20 лет как, популярные x86 PC 30+ лет.

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

Пытаться создавать программу, которая будет создавать программы

Это плохая идея, полностью с тобой согласен. ИИ и алгоритмы я подразумевал как помощники погромисту в его нелегком деле. Упрощающие его работу, уменьшающие нагрузку на мозг. Я не об очередном генераторе кода на нейронках от смузихлебов. Я скорее про IDE 2.0 и ЯП спроектированный для работы в такой IDE.

прекратится безудержное размножение нового зоопарка железа

Для этого нужно опенсорц железо.

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

Нужно больше практики.

  1. заведи себе текстовый файл и регулярно записывай в него разные идеи, которые возможно программно реализовать. пусть они будут относительно простые. пытайся все это напрограммировать. если идей мало, можно глянуть на stackoverflow.com или codereview.stackexchange.com или codegolf.stackexchange.com.

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

  3. Получи мотивацию, выполняя задания на hackerrank, или других подобных вебсайтах. вот список таких сайтов https://www.freecodecamp.org/news/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f/ . Начинай от простого к сложному и набивай рейтинг.

Voviandr
()
Последнее исправление: Voviandr (всего исправлений: 1)
Ответ на: комментарий от lenin386

Если бы он был умнее 95% наcеления, у него и денег было бы больше 95% населения.

Количество денег зависит от многих факторов, и ум здесь далеко не на первом месте.

Когда богатый человек вопрошает «Почему ты такой умный и такой бедный?», ему можно задать вопрос «Почему ты такой честный и такой богатый?».

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

Извините. Мы с вами похоже на разных волнах. Мне не надо присваивать «юзера» к переменной типа «заказ». Мне надо одним куском считать некоторое количество байтов и расставить указатели на внутренности так, как мне будет удобно. А не как компилятор считает допустимым.

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

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

) Вы слишком категоричны.

У меня есть несколько продуктов, которые или до сих пор работают, или работали десятилетиями в разных предметных областях. Те из них, которые перестали существовать скорее уж наоборот - пережили саму предметную область, чем перестали её удовлетворять )

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

Toxo2 ★★★★
()

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

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

Spoofing

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

Вот это правильный ответ, все тред можно закрывать.

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

Нет слов. Изобрести вечный двигатель - и парится о востребованности. Всётаки место проклятое…

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

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

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

static_lab ★★★★★
()

Дорогой Spoofing, вчера выяснилось, что аналитику на ЛОР-е публиковать нельзя по причине «Национальные/политические/религиозные споры», и мой ответ был выпилен. Бывают неадекватные люди, что ж поделать.

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

Ответ в теме «Я тупой, что делать?» на linux.org.ru

Пусть останется для истории.

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

Фига се. На мой взгляд тут вообще нет ничего крамольного. Хотя с самим постом по существу я бы поспорил, но ничего национального/политического/религиозного там не было. Кроме упоминания СССР.

emorozov
()

Имхо, Раст не подходит для изучения программирования. Есть много книжек, где учат не языку, а именно программировать. Язык там может быть С, С++ или Паскаль. Рекомендую начать с них.

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

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

Pascal ещё и абсолютно бесполезный мамонт в нынешнем мире, программисты на КОБОЛ и ФОРТРАН наверное более востребованы.

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

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

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

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

В свое время еще в 90-ые мне очень помогла книга Фаронова, вероятно более ранний выпуск (про TP v5.5) такой книжки:

http://old-dos.ru/index.php?page=lib&do=show&id=477

Причем она у нас распространялась в виде ксерокопий по 2 страницы на каждом листе A4 :)

sanyo1234
()

Структуры в расте ещё какие-то, почему нельзя обойтись обычными массивами для хранения данных

Если это вброс, то это очень жирно. Если ты серьезно, то тебе не стоит заниматься программированием ни на каком языке

Aswed ★★★★★
()

Прикольно конечно ... что можно одним символом " " (пробел) описать число 32 т.к. это 32 символ в ASCII таблице.

Вы даже приблизительно не представляете насколько это «Прикольно»! «Давным-давно» коллега таким образом цифирки в dbf хранить придумал, байтики шельмец экономил, с читаемостью правда было не очень, другие коллеги называли это «мордочки», надеюсь догадываетесь почему.

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

и чё ты мне сделаешь я в другом городе живу????????

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

Знакомая ситуация.

Чтобы что-то понять нужна мотивация.

Можно пересмотреть свое отношение к программированию на время и относиться к нему как к игре.

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

В случае с C надо, например, захотеть написать простую программу посимвольного вывода текста из файла.

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

На чем основан такой совет?!

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

Может быть, восполнив ряд пробелов, он напишет что-то гениальное.

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

он напишет что-то гениальное

Booty2 на расте!

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

На чем основан такой совет?!

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

Может быть, восполнив ряд пробелов, он напишет что-то гениальное

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

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

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

AnonymUser
()

Я тупой, что делать?

Купи жене себе сапоги?

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

Ну тогда а зачем вообще тебе присваивать юзера к переменной типа «заказ»?

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

monk ★★★★★
()

Ну кароч.

Твой пример на про rust, а про локальные области видимости. Такая штука требуется для твоего же удобства. К примеру, случаются сущности, которые называются одинаково. Поэтому ты можешь на запариваться, в фигурных скобках объявить внутреннюю переменную с тем же именем (в твоём примере - x), делать с ней в рамках фигурных скобок что угодно, а после выхода за скобку - у тебя ранее объявленная x чистенькая, как будто с ней ничего не делали. Да, тут фишка вот в чём. Иной раз понимание некоторых вещей связано с усилием и некоторым повторением. Думать - это больно! Возьми свой пример и поиграйся с ним. Попытайся вникнуть, что имели ввиду создателя языка, внедряя эту конструкцию. Посмотри, как это всё работает, придумай свой пример. Оч удобная штука, кстати.

Отдельный привет тем, кто rust с Хаскелем сравнивает. Вообще не то. Они различаются семантикой.

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

СТруктуры опять же не про rust а про организацию данных. Вот возьмём к примеру, тех же человечков. Как их описать? Структура с полями (first_name, last_name, age, height, weight). А потом делаешь из таких вот массив. Далее можно выяснить, сколько человечков, которым > 30 лет, отфильтровав их соответственно. Отсортировать по фамилии. Хорошая штука, поиграйся с ней.

solom
()

Структуры в расте ещё какие-то, почему нельзя обойтись обычными массивами для хранения данных.

А вот зря ты Си проигнорировал, там тоже структуры. И в нелюбимом замученными школьниками паскале есть, только там они record-ами зовутся.

В Java структуры, ЕМНИП, унифицировали с классами (что по-своему логично, ибо в крестах класс от структуры отличается только дефолтной областью видимости).

И тут мы вспоминаем, что в современном PHP классы тоже есть… А, стоп, ты про них даже написал, что не осилил.

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

В итоге для наглядности в скриптовых языках используют словари, ассоциативные массивы и прочую дичь (*) с индексацией по строкам. Которая чудовищно неэффективна и по-прежнему более громоздка в записи по сравнению с традиционными для компилируемых языков struct/record.

Ну и что теперь, обратно в дворники идти?

Если для тебя освоение нового ЯП — это боль, то скорее всего, да. А почему бы не получать от этого удовольствие? Знать несколько ЯПов, уметь выбирать ЯП под задачу…


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

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

Почему-то вспомнился анекдот про «Тогда ради бога, сынок, ничего не трогай, ничего не меняй».

hobbit ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)