Привет реактор. Пришёл с проблемой, я тупой. Но надеюсь это временно.
Суть в чём. Хочу попытать себя в програмировании. Купил даже книжку, самоучитель. Но она начала меня унижать просто с первых страниц. Я не хочу проигрывать какой-то там книжке.В связи с чем возникла проблема, математику я позабыл очень сильно.
И так. Есть ли какой-нибудь учебник или ютуб канал, который помог бы мне уже великовозрастному дебилу подучить математику? Желательно что бы я понял.
Еще на тему
Направление. Конкретного не планировал если честно, но скорее всего геймдев. Ну люблю я игры.
Думаете, почему его в школах еще в 7-8 классах изучают? Потому, что он немного на себя принимает удар "испуга" новичков относительно "кода", синтаксиса, базовейшей логики и алгоритмического мышления.
Видеоигры, вроде "Human resource machine" и другие алгоритмические паззлы - в ту же копилку. Они дают интуитивное, базовое понимание таких вещей, как стек, оперативная память, массив, цикл, счетчик и прочее.
Лично замечаю, что проблема "вхождения" взрослых гуманитариев в айти связана не столько с их неспособностью выучить синтаксис и мыслить логически, сколько недостаток сформированных в детстве "мыслительных рефлексов" по решению задач самого программирования.
Редактор карт в Варкрафт 3 научил меня большему, чем препод в университете
В подтверждение к тому, что ты отстал от жизни - я сам бывший врач, 10 лет работал в больнице и переучился на c# (о чем даже пилил тут пост) без каких-либо специфичных знаний математики или технарского опыта.
Серьезно, хватит быть таким ограниченным, потому что ты не только себе вредишь, но и другим своими нелепыми советами.
Раз уж ты за экосистему начал, то давай посмотрим:
* библиотеки в ЖС - тонна на любой вкус и цвет под любую задачу с гигантским коммьюнити и легкостью подключения\отключения в одну команду. Я вообще ни у кого лучше не видел. Полная кастомизация, твори что хочешь и как хочешь. С другой стороны чтобы в плюсах что-то подключить надо в жепу цыганам дать. Как правило ты выбираешь какой-то большой фреймворк типа кути или геймдевский движок и работаешь сугубо в его рамках, любая утилита или ищется в локальной доке (а они говно когда поддерживаются локальными силами), либо пишется самостоятельно (удачи написать самому хорошо с первого раза).
* поддержка самого языка: в ЖС регулярные и понятные обновления, в которых ты сам можешь принять активное участие при желании. В плюсах я хз, но слышал что людям так себе нравятся новые стандарты (хотя это снобизм наверняка)
https://source.chromium.org/chromium
https://github.com/python/cpython
https://github.com/ruby/ruby
https://github.com/php/php-src
И даже оно:
https://github.com/nodejs/node/blob/main/src/README.md
Количество библиотек не равно каччеству библиотек. Те же Рубисты любили говорить, что Руби камьюнити лучше Питоновского, потому, что у них либок больше. Но прикол в том, что у Питона просто из коробки куча библиотек с нужным функционалом была, а Рубисты велосипеды изобретали. Так что если в JS любой рукожоп после трехмесячных курсов считает своим долгом зафигачить либку для камьюнити - это не делает его лучше.
Сравнивать же интерпретируемую JS поделку с С++ фундаментом - это выдает еще больше твоей некомпетентности. Ясен пень в интерпретируемом языке тебе на изи подключать либки, потому, что С++ мега-мозги прикрыли твою нежную детскую попку со всех сторон на уровне интерпретатора/виртуальной машины.
тебе не столько математика нужна будет на первых порах, сколько алгоритмы, структуры данных, о том как вообще работает комп, как устроена память, процессор, жесткий диск, операционная система и т.д.
математика в игрострое появится когда будешь всякие визуальные эффекты творить, физику, ИИ...
а если будешь прогать какую-то бухгалтерию, производство, даже статистику - там темы математики заканчивается на процентах, пропорциях, вряд ли ты это забыл со школы.
Там ниже правильно написали, лучше выбрать другой язык для первого изучания: java, js, Python. А так же перед выбором языка лучше посмотреть где он в массе своей применяется и хочешь ли ты работать в этом направлении. Ну и да, математика на первых парах, да и на вторых не нужна от слова совсем.
Если ты хочешь кодить в геймдеве, то выбирай движок и точись под него.
В unity нет js уже лет 6. Да и технически говоря никогда не было. Это был unityscript похожий на js.
- Python, чтобы быстрее въехать в концепцию программирования
- C, чтобы понять, как программирование на низком уровне устроено
После того, как нарастишь базу, можешь уже в любой другой язык въезжать под желаемое направление.
Математика тебе точно на первых порах не понадобится, разве что банальная булева алгебра.
Книжки тоже трата времени, как и курсы по началу. Для новичков есть ресурсы типа https://www.learnpython.org/
Js - ебаный рак, ничему хорошему тебя не научит.
Если хочешь изучить именно алгоритмы, то начинай с паскаля(Pascal.ABC под .Net, тоже в принципе сойдет). Возможно неплохо зайдёт с C# или Java. Когда научишься писать алгоритмы, то можно уходить в низкоуровневые языки вроде C и после этого уже учить C++.
И да, геймдев - одна из самых днищеских областей в айти. Переработки, говнокод, высокие требования(хотя судя по качеству игр может и не актуально) и весьма посредственная зп. И скорее всего ты будешь делать очередной клон мобильной дрочильни.
Средний формошлеп в галере может быть куда более успешен в плане бабла
Попробуй khanacademy, потому что:
1. По основным разделам математики там курсы есть, при чем на уровне старшей школы
2. Интерактивные задания и их много
Из минусов- заданий ну прям очень много и для школоты, будешь чувствовать себя выдресированной собачкой.
На stepic есть курс Саватеева "Математика для всех"- больше для понимания как разделы математики связаны между собой.
А на торрентах можешь поискать книги по запросу Mathematics for engineer
В свое время так сам продрался через курс статистики тервера.
C++ первым языком лучше не изучать. Он сложный.
Математика тебе не нужна, это для прокаченных спецов. Тебе бы макакой устроиться для начала.
лет 10 назад достаточно было jQuery и уметь чтоб флоаты в css не разъезжались, а если шаришь свеженькие флексбоксы и какой-нить ангуляр - ты уже практически миддл.
вордпресс + вукоммерс
В моём же детстве был хардкор и мы все писали на чистом Си, но всё равно начинали с Basic, QBasic, Pascal - потому что они проще.
Что касается самого вопроса - из типизированных языков программирования (а С++ типизированный, объектно ориентированный язык программирования) я бы посоветовал Java. Из не типизированных (да, такие есть которые сами за тебя высчитывают тип переменных, называется duck types) то Python, JS, может быть Ruby
- Привет! Я no code разработчик, готов взяться за ваш проект.
- Привет, я no money заказчик, думаю - сработаемся.
Если, конечно, речь не идет об экзотике вроде RPython.
def addition(x: int, y: int) -> int:
return x * y
addition(2, 2) # 4
addition('ты', 'пидор') # тыпидор
def addition(x: int, y: int) -> int:
assert isinstance(x, int)
assert isinstance(y, int)
return x * y
Дичь конечно, хоть и форсит типизацию. Но под капотом она статичной от этого не станет.
Это и для жс типичная ситуация - на входе метода проверки типов и валидация.
И это последнее, чем нужно нубу голову себе забивать.
Он позволяет писать быстрые программы, да. Но логика часто выходит погулять.
И вот ещё курс от Практикума: https://practicum.yandex.ru/math-foundations/
Потому что насколько мне не изменяет память, основы программирования как минимум до уровня продвинутого джуна вполне учатся с математикой средней школы.
https://t.me/GPT4Telegrambot
https://t.me/chatsgpts_bot
Алсо, я тоже считаю, что выбор с++ на старте это дичь. Python я на самом деле тоже не стал бы рекомендовать (синтаксис имеет свои особенности). А вот Java - отличный выбор: многие вещи на ней более нативны, чем на Python, нет ебанутой особенной математики как у js, ОГРОМНОЕ количество материалов по подготовке. Из книг посоветовал бы Дубаков Введение в объектно ориентированное программирование на java - там как раз разбирается кодинг с нуля.
Можно ещё попробовать java rush, но кмк там многие вещи сделаны в неудачном для изучения порядке.
Эх. Помню, как в 9 году на втором семестре сразу после Паскаля заставил один придурок С++ на практических занятиях юзать (а теорию для С# вроде давали), мол хули тормозить.
Днепр что ли?)
Другое дело что начинать с него в 2к24м... нахрена? Если область его применения (хоть и довольно широкая) - системное программирование, куда новичок не попадет.
Ну разве что человек микроконтроллерами заняться решил, но снова таки, стартпостер никаких критериев не назвал.
на, может поможет
Вот тебе бизнес план:
1) Едешь на север
2) Покупаешь квартиру за 400-600$
3) Устраиваешься удаленно джуном за 600$ в месяц.
4) Работаешь так 1 год.
5) За год ты сэкономил 5000-12000$ на аренде квартиры. И теперь ты можешь устроится куда-то мидлом за 2000$ в месяц
6) PROFIT!
Звучит странно, есть подозрение, что дело не в математике.
В целом, считаю, что чтобы учиться кодить, надо, блядь, кодить.
Считай, что для тебя основная метрика - это сколько ты раз за месяц садился и работал работая над проектом. Если ты не садишься каждый день и не кодишь хоть по чуть-чуть, скорее всего, ты не тем занят и толку от такого обучения будет мало.
Выбирай себе проект по силам (желательно - на границе своих возможностей, чтобы в какой-то момент тебе пришлось изучать новые аспекты разработки для него реализации, но в то же время не настолько адовый, чтобы ты в первый же день демотивировался и бросил) и работай над ним регулярно.
Это слово тут ключевое - регулярно.
Это единственный способ прогрессировать. Не так страшно, если ты будешь писать про 5 строчек в день, если ты это не бросаешь и проект продвигается, пусть даже медленно.
Куда более опасно тянуть время, потом находить в себе силы со словами "ну все, сейчас я возьмусь!", садиться на десять часов, а потом чувствовать себя разбитым и обессиленным и забивать ещё на неделю-две-три.
2. https://habr.com/ru/companies/ruvds/articles/315572/
2) Статья по ЯП за 2016 год - ну-ну, ну-ну...
Для первого времени тебе из математики нужна будет исключительно арифметика и банальная логика.
Поэтому рекомендую следующее:
1) Изучи про переменные , условные операторы , циклы и функции . Это и будут твои основные строительные блоки даже в случае с C++, если только ты не выбрал функциональный язык, но это уже другая история.
2) После изучения этих простых понятий, тебе нужно научится решать елементарные задачи с их помощью, для этого залетай на сайты с задачами по программированию типа leetcode и решай там самые простые задачи.
3) После того как с легкими задачами сможешь справляться без затруднений, настанет время изучить базовые алгоритмы такие как сортировка и обходы деревьев. И для этой цели есть хорошая книга Грокаем Алгоритмы, причем в твоем случае желательно при прочтении книги реализовывать предложенные там алгоритмы на выбранном тобой языке. В книге написано на пайтоне, но будет даже лучше если ты выберешь другой язык, потому что алгоритм это рецепт состоящий как раз из блоков перечисленных в первом пункте, даже без функции, и умение перевести такой рецепт на язык на котором ты пишешь, по сути и есть программирование, ну + еще умение самому строить подобные алгоритмы.
4) На этом этапе у тебя уже будет минимальная база программирования, и тут ты уже можешь приступать к изучению более сложных тем, например ООП для С++ или любого другого языка, изучать как реализовывать прикладные задачи которые ты хочешь решать и так далее. Но думаю если доберешься до этого пункта самостоятельно, сможешь сам минимально понять что учить дальше, а если нет то приходи , расскажем дальше