Расходимся — просто препод не айс. Посоны CS50, поди, насмотрелись, теперь скучают и выглядят для таких «преподов» просиживающими штаны. Всё они знают ("… и многие из них уже трудоустроены по специальности и весьма успешны на своих работах.."), это вы не всё знаете (о них, имеется в виду).
— Бывает гусеница, а зайка? Червячок, а верблюд?
— Юра, ну что ты какие спрашиваешь глупости!
Сейчас же — «глупости». И сейчас же предположение, что ребёнок болтает зря, только чтобы болтать. Юра краснеет.
— А как же бывает жук-олень, жук-носорог?(с)
Речь велась об абстракции в программировании. Водолазыконюхи архитекторы тут ни при чем, нет смысла их обсуждать в контексте поста. Дело в абстракциях и умении их готовить — crucial навык для ITшника. Т.е. это наименее обидный наиболее содержательный ответ на ваш вопрос, от ч-ка, пришедшего в IT из строительного бизнеса.
Таки перво-наперво для коллег: 'I disapprove of what you say, but I will defend to the death your right to say it'(с) Не бомбите, пжл, just wanna помочь парню абстракцией, которая в своё время выручила меня в подобной ситуации, спасибо.
Собственно, для автора поста: Программист — не технарь, программист — гуманитарий, т.к. по сути он — переводчик.
Переводчик – это специалист, который умеет не просто перевести, но и интерпретировать речь или текст с одного языка на другой.
И задача программиста: перевести озвученные потребности бизнеса заказчика — на язык понятный машине. Из вышесказанного следующие выводы:
0. Дался английский — дастся и программирование (по-сути псевдо-английский);
1. Учить тот язык, который соответствует задачам, что планируется/хочется решать. Не нужно учить 'латынь и древнегреческий' (фортраны-паскали и прочее) если планируется 'говорить' с IOSом;
2. Не нужно учить математику сверх уже имеющихся школьных знаний==базовой теории, достаточных для того, чтобы понять разницу в Big O Complexity. Т.е. не нужна ученая степень, но нужно понимать такие вещи, как логика, проценты, матрицы и геометрия. И до тех пор пока не появится задача, требующая этого навыка (возможно она не появится вовсе; возможно выбрать сферу, в которой она не понадобится, раз с ней такие 'сложности'), математика — это факультатив. Просто, когда-нибудь позже (и, довольно-таки, скоро), с профессиональным ростом, само появится желание с ней познакомиться — и это будет в удовольствие, а не в напряг, но на данном этапе — это как утверждать, что у тебя не получится говорить на иностранном — если ты не знаешь как сказать о цифрах/числах (думаю тут уже и становится понятно, насколько 'классно' без цифр/чисел можно говорить на любом языке). Пока же от 'К.О.Д.' Петцольда пользы больше будет;
3. Нужно осознать, что придётся 'перевести-на-компьютерный' понятия из человеческого мира (они же существительные: экран, кнопка, кошелёк, сумма, платёж), и действия над ними (они же глаголы), сходи туда-то, возьми то-то, сделай с этим что-то, и отдай это. По-сути сводится к 'бутылочному горлышку' в виде CRUD + UIные пляски а-ля анимируй вот это (если фронтенд). Ничего сложного, главное осознать сам факт/парадигму — ты просто объясняешь, с чем и что ты хочешь сделать. И в итоге по-любишь компьютеры больше людей — они однозначно трактуют и точно делают, для аутичного мизантропа меня — просто рай, кстати;
4. Прямая дорога на Udemy (например) -> покупается курс часов на 10-20(для начала), по интересующей технологии -> в один монитор учебное видео + во второй IDE -> ручками делаешь всё от и до -> PROFIT. Цена вопроса в дни скидок, что раз в месяц стабильно, ~ 800 руб. Очень не рекомендую (внимание: крайне субъективное мнение!) русскоязычные курсы на русских платформах, ибо дорого+устаревше+в-отрыве-от-реальных-задач == лютый треш. Лучше добивать английский, раз уже есть база и в планах релокация.
5. Параллельно (в целях экономии времени и вообще) изучать любую доступную информацию в любом виде (короткими кусками, статьями и 15-45минутными видео, не книгами по 2 тыс стр) о best practice в проектировании и архитектуре ПО — очень недооценнёное, редкоупоминаемое (до позиции senior) для новичка знание, которому нужно просвещаться факультативно, после основных задача, но вот прям сразу начинать, да. Нужно учится мыслить проектно/архитектурно — всё остальное пыль, прах и тлен, если этому не начать учиться уже с позиции нуба. Проясняющая аналогия: ты знаешь кучу иностранных слова и не можешь связать их в осмысленный текст, или же ты знаешь как строится речь, и если что в гугл-переводчике слово подглядишь. (Так делают все);
6. Программирование — это кайф, в нём нет никаких напрягов — в нём есть удовольствие(даже когда сложно). Компьютер — твой верный партнёр, а не 'непонятный враг', он надёжен, исполнителен, быстр, не устаёт. Не нужно его бояться, или пытаться 'по-бороть', прост, нужно заговорить с ним — на его языке, всио. (Сложнее заказчика понять).
Краткое содержание статьи: https://youtube.com/clip/UgkxEj8q9Ir_qCg6HJ8wVv6Pitf1tvxmnSyA
Речь велась об абстракции в программировании.
Водолазыконюхиархитекторы тут ни при чем, нет смысла их обсуждать в контексте поста. Дело в абстракциях и умении их готовить — crucial навык для ITшника. Т.е. этонаименее обидныйнаиболее содержательный ответ на ваш вопрос, от ч-ка, пришедшего в IT из строительного бизнеса.Собственно, для автора поста: Программист — не технарь, программист — гуманитарий, т.к. по сути он — переводчик.
И задача программиста: перевести озвученные потребности
бизнесазаказчика — на язык понятный машине. Из вышесказанного следующие выводы:0. Дался английский — дастся и программирование (по-сути псевдо-английский);
1. Учить тот язык, который соответствует задачам, что планируется/хочется решать. Не нужно учить 'латынь и древнегреческий' (фортраны-паскали и прочее) если планируется 'говорить' с IOSом;
2. Не нужно учить математику сверх уже имеющихся школьных знаний==базовой теории, достаточных для того, чтобы понять разницу в Big O Complexity. Т.е. не нужна ученая степень, но нужно понимать такие вещи, как логика, проценты, матрицы и геометрия. И до тех пор пока не появится задача, требующая этого навыка (возможно она не появится вовсе; возможно выбрать сферу, в которой она не понадобится, раз с ней такие 'сложности'), математика — это факультатив. Просто, когда-нибудь позже (и, довольно-таки, скоро), с профессиональным ростом, само появится желание с ней познакомиться — и это будет в удовольствие, а не в напряг, но на данном этапе — это как утверждать, что у тебя не получится говорить на иностранном — если ты не знаешь как сказать о цифрах/числах (думаю тут уже и становится понятно, насколько 'классно' без цифр/чисел можно говорить на любом языке). Пока же от 'К.О.Д.' Петцольда пользы больше будет;
3. Нужно осознать, что придётся 'перевести-на-компьютерный' понятия из человеческого мира (они же существительные: экран, кнопка, кошелёк, сумма, платёж), и действия над ними (они же глаголы), сходи туда-то, возьми то-то, сделай с этим что-то, и отдай это. По-сути сводится к 'бутылочному горлышку' в виде CRUD + UIные пляски а-ля анимируй вот это (если фронтенд). Ничего сложного, главное осознать сам факт/парадигму — ты просто объясняешь, с чем и что ты хочешь сделать. И в итоге по-любишь компьютеры больше людей — они однозначно трактуют и точно делают, для аутичного мизантропа меня — просто рай, кстати;
4. Прямая дорога на Udemy (например) -> покупается курс часов на 10-20(для начала), по интересующей технологии -> в один монитор учебное видео + во второй IDE -> ручками делаешь всё от и до -> PROFIT. Цена вопроса в дни скидок, что раз в месяц стабильно, ~ 800 руб. Очень не рекомендую (внимание: крайне субъективное мнение!) русскоязычные курсы на русских платформах, ибо дорого+устаревше+в-отрыве-от-реальных-задач == лютый треш. Лучше добивать английский, раз уже есть база и в планах релокация.
5. Параллельно (в целях экономии времени и вообще) изучать любую доступную информацию в любом виде (короткими кусками, статьями и 15-45минутными видео, не книгами по 2 тыс стр) о best practice в проектировании и архитектуре ПО — очень недооценнёное, редкоупоминаемое (до позиции senior) для новичка знание, которому нужно просвещаться факультативно, после основных задача, но вот прям сразу начинать, да. Нужно учится мыслить проектно/архитектурно — всё остальное пыль, прах и тлен, если этому не начать учиться уже с позиции нуба. Проясняющая аналогия: ты знаешь кучу иностранных слова и не можешь связать их в осмысленный текст, или же ты знаешь как строится речь, и если что в гугл-переводчике слово подглядишь. (Так делают все);
6. Программирование — это кайф, в нём нет никаких напрягов — в нём есть удовольствие(даже когда сложно). Компьютер — твой верный партнёр, а не 'непонятный враг', он надёжен, исполнителен, быстр, не устаёт. Не нужно его бояться, или пытаться 'по-бороть', прост, нужно заговорить с ним — на его языке, всио. (Сложнее заказчика понять).