Я студент 3 курса колледжа. Учусь на программиста. У меня большая проблема: я не умею решать задачи. Я не знаю с чего начать и чем закончить. Также я не знаю математику. Особенно дискретную. По высшей математике хотя бы преподаватель - просто топовый мужик, я научился решать некоторые разделы и даже что-то понял, а с дискретной математикой всё глухо, я её просто списываю. Также у нас сейчас есть теория алгоритмов, там я тоже абсолютно беспомощен.
Как это можно исправить? Многие твердят: решай задачи. Ну, ок, допустим, беру какую-нибудь задачу. Прочёл текст. А дальше-то что? Я не знаю как подойти к решению задачи, с чего начать, что вообще делать и чем закончить.
Сейчас у нас активно преподаются С и С++, и мне сильно тяжело. Что-то простенькое сделать могу, но там, где нужно решить какую-то задачку или где присутствует какой-то алгоритм (например, пузырьковая сортировка), я абсолютно беспомощен: смотрю на экран как идиот, но мозг ничего не может родить... В программировании дела не очень. Могу побрыкаться где-то до циклов и массивов, а дальше "наши полномочия уже всё"... Обижаюсь на себя, что я такой тупой, но ничего изменить не получается. Я могу сидеть над задачей хоть неделю, но с мёртвой точки сдвинуться не получается...
Помогите советом, пожалуйста: как "перепрошить" свой мозг? Как научиться решать задачи? Как научиться понимать алгоритмы и хоть немного шарить в математике? Под "хоть немного шарить в математике" я имею ввиду способность видеть суть проблемы и находить оптимальное решение.
P.S.: пока чтобы хоть как-то развиваться, я практикую вёрстку и C# (в дальнейшем хочу пойти в backend).
Сергей delphinpro, ой, это долгая история. В айти меня вообще случайно занесло. Не получилось поступить на ту специальность, куда я хотел, но так как мне ещё были интересны компьютеры (и я пробовал сам писать на Паскале и мне это понравилось), то решил поступить на программиста.
Или прям очень хочется в IT?
Скажу так, я туда не рвусь всеми силами души, интерес, скорее, несколько посредственный. Но основное, что меня держит - это тот факт, что я уже на 3-м курсе... Выпуск уже на следующий год... Как-то жалко потерянные 4 года..
Помимо программирования есть очень неплохие скилы в дизайне (весьма классно рисую и неплохие модельки в Блендере, также работаю в 3D-максе). Планирую даже опубликовать некоторые работы на профильных ресурсах. Но, сдаётся мне, в этом направлении мало что заработаешь, ибо дизайнеров нынче полным полно) Поэтому и долблю программирование)
Скажу так, я туда не рвусь всеми силами души, интерес, скорее, несколько посредственный. Но основное, что меня держит - это тот факт, что я уже на 3-м курсе... Выпуск уже на следующий год... Как-то жалко потерянные 4 года..
Чуть позже будет жалко потерянные 4 курса уника + несколько лет безуспешных скитаний по IT, инфа сотка. Без интереса в IT делать нечего. Если тебя не прёт с того, что программа скомпилировалась и работает, не прёт с того, что ты прошил свой роутер и он еле как работает, зато на прошивке, которую ты сам туда залил, не прёт с того, что ты открыл браузер на localhost:8000 и видишь там буковки, которые печатаешь в IDE, не прёт с того, что ты смог помигать диодом на ардуине, которую купил за 5к рублей, хотя она стоит в 10 раз дешевле, но ждать с Китая долго и ты не готов это всё делать в 4 часа утра, хотя в 8 утра уже вставать — нечего пытаться, честно.
Понять программирование легко. Мы тут не ядерной физикой занимаемся и (в большинстве своём) не ракеты в космос пускаем. Но чтобы понять, нужно желание.
P.S. Ещё добавлю, что С/С++ — не самые удачные языки для первого языка и обучения в унике. В С/С++ ты сначала тратишь 90% времени, отвечая себе на вопрос "да какого хера этому компилятору от меня надо?". Возможно, стоит попробовать Golang или Python, где ты эти 90% времени сможешь потратить на решение задачи.
WbICHA, Скажу так, я туда не рвусь всеми силами души, интерес, скорее, несколько посредственный. Но основное, что меня держит - это тот факт, что я уже на 3-м курсе... Выпуск уже на следующий год... Как-то жалко потерянные 4 года..
Помимо программирования есть очень неплохие скилы в дизайне (весьма классно рисую и неплохие модельки в Блендере, также работаю в 3D-максе). Планирую даже опубликовать некоторые работы на профильных ресурсах. Но, сдаётся мне, в этом направлении мало что заработаешь, ибо дизайнеров нынче полным полно) Поэтому и долблю программирование)
Петр, стараюсь именно так и делать. Но бывает даже такая ситуация, когда даже не представляю как разбить задачку на подзадачки... И это уже реально страшно... Страшно то, насколько я тупой...
Сергей delphinpro, не буду спорить, т.к. уверен, вы в этом разбираетесь лучше меня. Но везде говорят о том, что заработок там не очень и конкуренция на порядки выше, чем в программировании. Но в любом случае, если, допустим, с дизайном у меня ничего не выйдет в плане заработка, то 100% буду продолжать им заниматься в качестве хобби.
Roman Kitaev, Всё возможно, конечно. У меня бывают такие дни, когда интерес есть, а бывают такие, когда интереса нет и я занимаюсь программированием чисто из-за того, что у меня профильное образование и потому что "надо".
На счёт С и С++ вы правы. Один из моих одногруппников пишет на C#, показывая свои работы, заинтересовал этим языком. Сейчас я изучаю только C#. Он значительно лучше как первый язык и легче.
Помимо программирования есть очень неплохие скилы в дизайне (весьма классно рисую и неплохие модельки в Блендере, также работаю в 3D-максе).
Это отличный повод задуматься:) Мой брат работает на какую-то компанию в Австралии, тоже рисует модельки в блендере. Зарабатывает весьма неплохо для РФ. Зато делает это в удовольствие. Убивается по оружию, военной тематике и английскому языку. Собственно, работает, рисуя оружие и хаммеры и общается по-английски с коллегами.
Roman Kitaev, достойно! Уважаю! Мой брат тоже делает модельки в Блендере, но ещё новичок, заработка хватает лишь на оплату услуг ЖКХ) Самое главное, конечно, это работать в удовольствие. Ну и знать английский)
Ну, ок, допустим, беру какую-нибудь задачу. Прочёл текст. А дальше-то что? Я не знаю как подойти к решению задачи, с чего начать, что вообще делать и чем закончить.
Анализ, декомпозиция.
Разбивайте общие задачи на более мелкие, элементарные.
Задача: выпить кофе.
Разбиваем на составляющие:
Достать турку
Налить воды
Добавить кофе
Сварить
Попить
Подзадачу "Сварить" делим на еще более мелкие:
Зажечь газовую плиту
Поставить турку на конфорку
Довести до кипения
Задачу "Зажечь газовую плиту" снова делим на составляющие:
Именно такому подходу я стараюсь придерживаться. Но бывает даже такая ситуация, когда даже не представляю как разбить задачку на подзадачки... И это уже реально страшно... Страшно то, насколько я тупой... То, что вы перечислили (выпить кофе, сварить и зажечь казовую плиту) - это простейшие бытовые действия, алгоритм уже "внедрён" в мозг) В задачах на логику и алгоритмы у меня не получается выделить подзадачи. Бывает так, что разбиваю на подзадачи, но получается всё равно какая-то дичь и я выполняю ненужные действия.
Тебе мозг надо не под программирование прошивать, а под жизнь в реальном мире.
Во-первых, ты не "потеряешь" 4 года на обучение. Чему-то ты там научился, ну и диплом в конце концов лишним не будет.
Во-вторых, программирование подходит вот вообще далеко не каждому. И тут надо смотреть правде в глаза. Нет ничего плохого в том, что ты не можешь быть программером. Я вот не могу быть танцором, ну и фиг с ним.
Но, сдаётся мне, в этом направлении мало что заработаешь, ибо дизайнеров нынче полным полно) Поэтому и долблю программирование)
Глупость. Программистов стартового уровня тоже не счесть. И если у тебя там нет малейшего таланта, то ты через эту тьму джунов не прорвешься.
Нужно заниматься только тем, что тебе нравится (разумеется, с поправкой на адекватность).
Благодарю за ответ. Да, в любом случае, некоторые знания есть.
Во-вторых, программирование подходит вот вообще далеко не каждому. И тут надо смотреть правде в глаза. Нет ничего плохого в том, что ты не можешь быть программером. Я вот не могу быть танцором, ну и фиг с ним.
Вероятно, это мой случай. Но пока что ещё есть желание попытаться) Если в течение ближайших 6 месяцев не будет серьёзного прогресса, то, пожалуй, лучше правда займусь дизайном и все силы брошу именно на эту сферу деятельности.
Nameisconfidentialinfo, благодарю за информативный ответ! Буду работать! Безусловно, базы у меня нет, сейчас я её и нарабатываю. Если бы у меня совсем не было интереса к разработке, то я вряд ли бы вообще пытался что-либо делать. Затягивает это дело, чёрт возьми)
Многие твердят: решай задачи. Ну, ок, допустим, беру какую-нибудь задачу. Прочёл текст. А дальше-то что? Я не знаю как подойти к решению задачи, с чего начать, что вообще делать и чем закончить.
Взять задачу попроще.
Если проще уже некуда - смиритесь с тем, что программистом вам не бывать. Да, это не каждому дано.
найти максимальный элемент одномерного массива. Суть понятна, а вот что делать - хз...
Что делать, русским языком:
1. Взять первый элемент массива за минимальный
2. Пройти по остальной части массива, сравнивая текущий минимальный с текущим элементом в итерации
3. Если текущий элемент в итерации меньше, чем текущий минимальный — присвоить текущему минимальному элемент в итерации
4. После выхода из цикла в текущем минимальном будет самый маленький элемент
5. Перевести алгоритм выше в код почти строчка в строку
P.S. В задаче был максимальный, но лень переписывать.
Будь я просто любителем, я бы смирился. Но я уже на 3-м курсе... Выпуск уже на следующий год... Как-то жалко потерянные 4 года..
Вы о чём? Выпускники - никто. В момент получения диплома готовы к работе только пара-тройка человек, которые начали работать ещё во время учёбы. Половина из остальных станут программистами года через три, а оставшиеся окажутся просто профнепригодны и уйдут работать какими-нибудь менеджерами, может даже торгового зала.
Сергей Горностаев, Если рассуждать по вышей логике, то у нас вообще работать никто не будет, наверное) Ибо летом кончается 3-й курс, но из нас вообще никто не работает по профилю. А кто их возьмёт-то?) На самом деле печально, что в IT слишком высокие требования. Сразу нужны профессионалы, новички не нужны никому... Порой думаю: может, правда в дизайн или 3D-моделирование пойти? К этим видам деятельности, как минимум, способности есть... Хоть к программированию способности у меня весьма ничтожны, но интерес ещё не иссяк.
K_A_S_H_E_Y, во-первых, чем больше людей хочет работать в ИТ, тем выше среди них будет конкуренция, тем выше требования - это закономерный процесс. Во-вторых, я бы не назвал нынешние требования очень большими, скорее среднего соискателя слишком слабым.
K_A_S_H_E_Y, Ну пытайся дальше, не сдавайся. Занимайся программированием хотя-бы по 3 часа в день смотри\читай уроки и со временем всё получится. Я уверен что ваши попытки создать какую либо программу можно пересчитать по пальцам.
Помню решили меня выдать как кандидата на олимпиаду, так каждый день с утра меня забирали с занятий и я сидел до темна занимался писал эти долбанные программы, в таком режиме 1 -2 недели и в итоге как орехи их щелкаешь, десятками, в итоге первые места вплоть до 3го тура обласной олимпиады, 3й специально слил потому-что дальше нужно было бы в столицу ехать, а это значит что с меня бы не слезли, а меня это уже конкретно за***ло.
Так что пытайся, в дальнейшем еще встанет вопрос, а на чем я хочу программировать и чем хочу заниматься? В итоге перебробуешь кучу ЯП, технологий и фреймворков, хотя если ты уже определился то завидую.
А потом ты выгоришь и тебе все надоест, настанет рутина.... ну до этого еще далеко.
twobomb, спасибо, буду стараться. Ой, олимпиады - это кошмар. Я в 8 и 9 классах участвовал на олимпиадах по биологии. Достаточно утомительное занятие, поэтому, понимаю вас.
А потом ты выгоришь и тебе все надоест, настанет рутина.... ну до этого еще далеко.
Да, до этого ещё как до Китая пешком) Но выгорание присуще любой сфере деятельности.
Математика то дело такое, конечно хорошо бы её знать, но достаточно знать какие-то базовые вещи, а если столкнетесь со сложной задачей, то гугл в помощь один хрен все формулы не выучишь, многие не согласятся ну у меня также.
А вот алгоритмы это реально нужная тема, нужно начинать с простых задач и решать решать решать тратить кучу времени чтобы вырабатывать у себя мышление, чтобы тебе дали задачу и у тебя в голове уже строился алгоритм её решения, а лучше несколько.
Найди задачи для олимпиадников по программированию школьного уровня и начни решать одну за другой, если не можешь решить подумай еще, и уже только после этого найди готовое решение с разбором и изучи его и отложи в мозгу.
На самом деле программирование в большей своей степени складывается из паттернов (мини задач) которые ты когда-то уже где-то делал, просто ты их комбинируешь по разному. По сути тебе один раз нужно научится работать со строками узнать какие методы бывают, с массивами там сортировки,перестановки, с циклами и в итоге ты сможешь программировать на любом высокоуравневом яп. Конкретный язык это как правило просто синтаксис который может по разному выглядеть но по сути он делает одни и те же вещи во всех языках.
А ну и еще если у тебя к этому не лежит, тебе скучно и не горишь желанием этим заниматься, а делаешь это через силу, то забей программирование это не твоё.
Для данного конкретного примера: "найти максимальный элемент одномерного массива" - я бы делал так:
на бумаге бы написал алгоритм простыми словами, типа: считаем, что наибольшим элементом массива является его первый элемент - запишем ег ов переменную MAX - далее организуем цикл по массиву - сравниваем каждый элемент массива с переменной MAX - если элемент больше MAX - записывает его в MAX. Ну это конечно для данного примера.
А вообще по алгоритмам можно читкануть книгу "Грокаем алгоритмы" Адитья Бхаргава
Ну а про "перепрошить мозг" - тут, как мне кажется, только один выход - учиться, учиться и еще раз, ну вы поняли. В наше время в интернете просто огромное множетво учебных материалов. На любые темы, есть для детей, там прям вообще просто объясняется. Попробуйте поискать интересующую тему и добавить "для детей", там будет разжевано прям вапче.
Еще было бы здорово найти товарища/друга, который бы вам помог.
Успехов!
K_A_S_H_E_Y, сильно подозреваю, что задачи для 7 класса ты не можешь решать именно потому, что и в 7 классе тебе не была интересна математика, и ты где угадал, где списал, и проехали. Такое не "перепрошьешь": для тех усилий, которые тебе потребуются, чтобы добиться и начать грокать математику, тебе просто негде взять мотивацию.
Ищи около-IT-шные ниши, раз все равно влез. Программировать через не хочу - совершенно бессмысленно.
Да, совершенно верно. У нас класс был безобразный, дисциплина нулевая, у нас был "спортивный" класс, учитель неплохой, но она забила на нас. Обучение было так себе, в общем. И это при том, что и без того с математикой у многих были проблемы. Лишь в 9 классе дали классного учителя, чтобы мы сдали ГИА хотя бы на 3... В техникуме был тоже классный препод, благодаря которому я понял производную, первообразную, тригонометрию (не очень хорошо, но многое научился решать), очень хорошо научился решать квадратные и биквадратные уравнения, неравенства, совсем немного понял логарифмы и капельку понял интегралы. Геометрию (особенно стереометрию) не понимал вообще. Хоть всё это капля в море, но для меня это уже был большой прогресс, на самом деле) Никогда не забуду ту эйфорию, когда получил первую оценку 4))
K_A_S_H_E_Y, а моя дочь в 11 лет ходит в кружок, где им дают основы теорвера и графов, и ей нравится, хотя никаких оценок и прочих стимуляторов там нет.
Сможешь ты с ней конкурировать на айтишном рынке? Можешь не отвечать...
K_A_S_H_E_Y, а все бомжи на помойках именно так и планировали, кто бы сомневался.
Я не про то, что она прям щас сможет графы - не сможет, конечно. Я про то, что ей эта заумь - интересна.
И уж поверь мне, родительских сил в то, чтобы ей это было интересно и продолжало быть интересно, вложена уйма. Вдруг наверстать самому все мозги, которые всю школу проветривал - совсем не фунт изюму.
Ну и ты сейчас вообще-то не в учебники зарылся, а на Тостер пришел потрендеть за свою трудную жизнь. Помощи тебе здесь не будет никакой, штекеров в затылок для закачки кун-фу не завезли.
Если бы можно было перепрошить мозг, никто бы не заставлял тратить годы и десятилетие на обучение.
Мозг не перепрошивается, а тренируется.
Тренируется МНОГОКРАТНЫМ решением различных задач. Поэтому нет никаких вариантов, кроме как решать разные задачи, в процессе мозг адаптируется к такому действию и решение будет для тебя более очевидным.
Поэтому да, бери и решай задачи. Много. Бери задачи проще, которые можешь решить. Переходи на следующий уровень не тогда, когда смог решить одну, а когда легко решил 10-20.
математика и программирование - разные вещи, абсолютно.
У меня большая проблема: я не умею решать задачи
неумение решать задачи ВСЕГДА является следствием двух факторов:
- незнанием инструмента
- незнанием теории
прежде, чем решать задачи на ЯП необходимо изучить возможности языка, устно, прочитав "теорию" (учебник) и понять, какие инструменты язык предоставляет.
Если тебе это интересно, то ты можешь это прокачать. Без интереса - далеко не продвинешься.
1. Уточни у себя, знаешь ли ты хорошо базовую математику, которую дают в 5-11 классах? Возможно, нужно начинать с самых основ и постепенно двигаться вверх, усложняя задачи. Как раз из 5 класса хорошо решаются задачи и развивается логика. Возможно, в начале тебе данные знания нужно подтянуть.
2. Читай книги про логику, развивай логику, пытайся увидеть алгоритм в каждом своем дне.
Сегодня искала книгу и многие советовали: Логика. Виноградов С. Н. и Кузьмин А. Ф. _ 1954, Непейвода В.В. - прикладная логика.
3. Попробуй все языки программирования и выбери тот, который откликнется и понравится. У тебя могут не идти другие языки, но когда ты попробуешь все - ты сможешь определиться и найти свой язык. Если ни один не подойдет, тут уже смотреть другую сферу нужно. Можно же работать в IT и не обязательно быть именно программистом. После выбора языка - изучать его, двигаться в том направлении, поставить цель и разбить на несколько частей. Следовать плану.
Если будешь прикладывать усилия, работать над этим - сможешь стать кем угодно.
Главное - труд и чтобы дело нравилось.
Лучше, качественнее, быстрее, но дороже - нанять опытного специалиста, который сможет вас обучить. В случае самообучения, времени уйдет гораздо больше, но свои плюсы в этом подходе тоже есть.
Дискретная математика и подобные дисциплины не помогут никаким образом научится программированию в веб, если не упираться в узкоспециализированные задачи.
смотрю на экран как идиот, но мозг ничего не может родить...
Учусь на программиста
Зачем?
Стать веб-макакой и через три-пять лет ныть на форумах о низкой зарплате, зверях-работодателях и профессиональном выгорании? Может стоит задуматься о том, что стоит заняться чем-то, что нравится?
Программистами не становятся. Ими рождаются. Так же как писателями, певцами, врачами и даже операторами станков с ЧПУ. (Я, разумеется, имею в виду хороших программистов и т.д. - посредственным программистом и т.д - стать можно вполне). Ну не дал Господь тебе того, что должно быть у программиста - зачем себя насиловать? Займись тем, что нравится.
Сдаться, конечно, проще всего. Но пока ещё хочу побороться.
Может стоит задуматься о том, что стоит заняться чем-то, что нравится?
Если в течение ближайших 6 месяцев не будет серьёзного прогресса, то, пожалуй, лучше правда займусь дизайном и все силы брошу именно на эту сферу деятельности. У меня есть очень неплохие скиллы в дизайне (весьма классно рисую и неплохие модельки в Блендере, также работаю в 3D-максе).
Программистами не становятся. Ими рождаются.
Если так рассуждать, то можно вообще не выбрать никакую профессию, ибо каждый представитель своей профессии (какой угодно), скажет, что %название_профессии% не становятся, а рождаются) Хотя, способности, безусловно, решают многое. Но убеждён, что это не решающий фактор.
Ну, если хотите быть одним из - конечно, Вам никто не помешает стать посредственным программистом вместо хорошего дизайнера. Посредственным специалистом стать можно - достаточно овладеть инструментарием и знать предметную область - ведь работа в профессии состоит не только из прорыва к сияющим вершинам :) Есть очень много нудной тупой скучной работы - которую обычно и поручают "так себе" спецам.
Сдается мне батенька тут лукавит. Ищет легких путей, которых нет и быть не может.
Скажу просто. Не даются сложные задачи - решай более простые. Не даются более простые - решай совсем простые. Много, активно и интенсивно. Это то же самое, как если бы начинающий пианист гонял целыми днями гаммы и арпеджио.
Повторюсь. Никаких других чудесных - путей нет и быть не может.
Хочешь научиться решать задачи - прорешай задачи 1000 часов как можно более интенсивно, хотя бы по 3-4 часа в день, и научишься без вариантов. А нет - так и нет.
Ах да, задачи не решаются, потому что овладей декомпозицией и композицией. Никто не заглатывает слонов целиком. Их едят небольшими кусочками.
А в целом я просто думаю что это не твоё и ты зря себя так мучаешь.
Не проблема, я научу и подскажу .... samlib.ru/m/monstrozar/piton.shtml Питон это самый простой язык, но он всеже сложный....
Потому что не русский....
Это решаемо вот решение для вас https://scratch.mit.edu/projects/editor/?tutorial=home
Даже если вы не знаете матиматику, но способны думать логически это решение .
Решайте через логику ,а не математику ..я так делаю...
Скажу так, я к примеру работал тестером(QA) различных проектов, и за это время я понял одно, кому-то даётся, а кому-то хуже. К примеру я мог проанализировать системы, и вывести возможные проблемы и предложения решения.
Так что даже если правильно построить алгоритм решения не выходит, можно просто сначала найти кого-то (забыл как их человек называют), кто мог бы пошагово объяснить/предложить как минимум два-три предложения для реализации задачи. Обычно, просто начинаешь улавливать логику каких-то систем. (Хотя, в конечном итоге может и скучно стать, когда слишком должно был в каком-то проекте, и уже понимаешь как устроено абсолюнто(почти) всё. )