Просто не знакомые инструменты, но изучение аналогов — механическая работа.
Не согласен — не механическая, в них разные идеи заложены, разные идеологии и подходы — очень даже есть над чем поразмыслить, может, удастся даже свой подход придумать.
смена языка понизит зарплату вдвое
Во-первых, если тебя волнуют в первую очередь деньги, тогда, конечно, продолжай тянуть свою дорогостоящую лямку. Творчество и вдохновение часто плохо совместимы с большими доходами — приходится выбирать, да.
Во-вторых, смена технологии — это не всегда смена рабочего места, так что тут всё очень сильно зависит от ситуации, поэтому ваше утверждение крайне спорно.
И для какой задачи в вебе это экономически оправдано
Почему Вы всё сводите к сиюминутной экономической выгоде? Во-первых, некоторым важнее заниматься интересным делом, чем много зарабатывать. Во-вторых, есть такая штука — фундаментальные исследования — это когда ты делаешь что-то, но понятия не имеешь, когда и как тебе это пригодится. Так и здесь — всегда можно заниматься чем-то в рассчёте на далёкое и неопределённое будущее.
А что дальше? Рутина.
А дальше можешь перейти в смежную область, в которой есть, что еще осваивать, а можешь вообще сменить вектор и из веб-программирования перейти в программирование контроллеров. Или графики. Или пойти в институт — наукой заняться.
Мы же говорили о программистах, а не о бизнесе?
Одно другому, в принципе, не мешает. Если у тебя уже есть большой доход, который не требует существенных временных затрат с твоей строны — у тебя развязаны руки — ты можешь заниматься чем душа пожелает и вообще забыть о финансовой составляющей. Чем плохо?
Знания и опыт накладывают четкие рамки и убивают все творчество.
Я считаю, это не совсем так.
Творчество убивают не знания и опыт, а в первую очередь уменьшение мотивации при работе с одними и теми же задачами одними и теми же инструментами.
В таких случаях творческий человек может начать расти вширь или вглубь.
Например, ты веб-программист, ты клепаешь сайты на РHP-MySQL-JS, но через 5 лет такой работы ты уже PHP в глаза видеть не можешь.
Хочешь расти вширь — бери Java/ASP.NET/RoR/Erlang/*Lisp — изучай новые горизонты, новые технологии, новые фреймворки, напиши вообще свой язык программирования.
Хочешь расти вглубь — переписывай ядро своей системы (которая за пять лет у тебя, конечно же, сложилась) — введи новые абстрации, автоматизируй до такой степени, чтобы одной кнопкой генерировалась страница любой сложности, документируй и почисти код — потом продавай свою систему за большие деньги.
Короче, есть желание творить — будешь творить вопреки, нет желания творить — ничто тебя не заставит.
Ну, да… если хорошенько вдуматься, то становится не смешно, становится грустно, потому что жалко Вас становится — вот человек — ошибся в выборе профессии и места работы, занимается нудной работой, хорошо, если имеет отдушину в виде хобби или семьи, а ведь деньги-то надо зарабатывать — приходится ходить на эту чертову работу, которая с каждым днём давит всё больше. А тут ходят всякие, говорят, что профессия-то не виновата, что всё дело в тебе, друг, а не в профессии — конечно, ты ни за что не согласишься, что ты не прав, будешь отстаивать свою точку зрения даже, если внутри будешь понимать, что не очень-то и прав, но задетая гордость, комплекс неполноценности не даёт признать, что у других всё может быть подругому, ну не могут они быть лучше тебя, делать творческую ненудную работу… Иначе получается, это ты виноват, а не «среда заела!»…
Вот, в одной конторе сидит человек. Ему говорят: «Вот в программу добавлено то-то и то-то» — он запускает программу, тыркает в произвольном порядке в кнопочки, вбивает произвольный текст, производит пять-десять магических пассов и отвечает: «Всё ок, давай в продакшн».
В другой конторе тоже сидит человек. Ему говорят: «Вот в программу добавлено то-то и то-то» — он берёт исходники, запускает свою любимую IDE, запускает модульные тесты, интеграционные, робота по юзер-интерфейсу, обнаруживает баг, находит, в каком модуле, потом еще навязчиво объясняет программисту своё виденье, как этот баг должен быть испрален.
У обоих в трудовой будет написано «Тестировщик ПО».
Кодер — это кодер — человек, превращающий своё ТЗ в код.
А программист — это где-то и кодер, и бизнес-аналитик, и менеджер, и эксперт в какой-то области.
1. Чтобы превратить ТЗ в код, сначала надо составить это самое ТЗ (чем нередко занимается сам программист).
2. Как правило, ТЗ объясняет конечную цель работы, а вовсе не оптимальную архитектуру или инструментарий. А построение оптимальной архитектуры и подбор инструментария — это почти всегда творческий процесс.
3. Требования к любому не совсем уж мелкому проекту обязательно меняются в ходе его реализации, даже пресловутые архитектуры и инструментарий не статичны и меняются со временем — под это всё надо подстраиваться — и это творческий процесс.
Вообще, творческая деятельность — это всякая деятельность, в которой человеку приходится принимать решения, не имея заранее заданного алгоритма действий, и потому основываясь на интуиции, прозрениях, философии, вкусах, личных предпочтениях и т.д.
В этом смысле даже работа токаря на станке может быть творческой, если он постоянно бросает себе вызовы и покоряет (пусть незаметные для посторонних, но совершенно реальные для него) вершины.
Ничего подобного. Структуры в Паскале подсказывают, как программировать структуроно, но никак не навязывают. Ох, сколько бы времени я съэкономил на разборе чужого кода, если бы Вы были правы. :)
Кажется, Вы просто не совсем понимаете, что означает «структурное программирование»…
вам придется давать корректные ответы на сопутствующие вопросы
Не вижу в этом никакой проблемы.
А на некоторые вопросы вполне допустимо ответить так:
пока что просто запомните, что в таких случаях надо делать так и только так — пусть это будет для вас волшебным заклинанием, а когда мы разберемся с более важными вещами, мы обязательно рассмотрим подробнее и этот вопрос.
Наличие «вредных привычек» в первую очередь зависит от строгости мышления, а не от языка программирования. В ассемблере вообще нет языковых структур, однако это не мешает программировать на нём структурно при правильном подходе.
Мне кажется, здесь многие путают обучение программированию как таковому и обучение языку программирования.
JS очень удобен для обучения по причине его максимальной доступности как в плане средств разработки, так и в плане сред исполнения. Опять же, в силу его распространённости по нему есть циклопический объем документации, обучалок, статей, комьюнити и т.п. — любой нюанс легко гуглится. Далеко не каждый язык может этим похвастаться.
И, наконец, программирование — это в первую очередь реализация алгоритмов. И в JS нет НИЧЕГО, что мешало бы обучающемуся понять, что же такое алгоритмы и как они реализуются в процедурном языке программирования.
В ЛЮБОЙ технологии есть свои грабли и неочевидности — это не те критерии, по которым следует определять, подходит ли данный язык для обучения. Большая часть граблей в JS заложена не в самом языке, а сопровождающем его ПО — библиотеках, браузерах, фреймворках. Проблема обучения JS в основном упирается в подбор экологической ниши оптимальной для обучения.
Когда ты начинаешь обучать человека программированию с чистого листа, ты в праве чётко ограничить подачу материала так, чтобы все задачи, которые вы будете решать, обходили большинство граблей и неоднозначностей. Например, сначала рассказывать только про ===, но не рассказывать про ==. Т.е. для начала можно преподавать более строгое подмножество языка — ровно такое, которое позволит обучать программированию как таковому. Со временем, освоив понятие алгоритма и основных структур языка программирование, можно будет дополнять начальное подмножество более сложными структурами. Главное — объяснять, почему такие-то вещи работают таким-то образом. Понимая внутреннюю механику языка программирования человек затем легко сможет перейти на другие языки.
Возможно… Но для сайта ему всё равно придётся разбираться с JS и HTML, правильно? :) Не проще ли сразу с ними разобраться, а серверную часть написать на том же Node.js, например.
JS хорош тем, что доступен практически на любой только что установленно операционке без необходимости что либо устанавливать дополнительно. Браузеры (большинство во всяком случае) содержат все инструменты необходимые для разработки. :) В крайнем случае браузер можно дополнить внешним текстовым редактором.
Сколько примерно линий в секунду можете нарисовать?
Не согласен — не механическая, в них разные идеи заложены, разные идеологии и подходы — очень даже есть над чем поразмыслить, может, удастся даже свой подход придумать.
Во-первых, если тебя волнуют в первую очередь деньги, тогда, конечно, продолжай тянуть свою дорогостоящую лямку. Творчество и вдохновение часто плохо совместимы с большими доходами — приходится выбирать, да.
Во-вторых, смена технологии — это не всегда смена рабочего места, так что тут всё очень сильно зависит от ситуации, поэтому ваше утверждение крайне спорно.
Почему Вы всё сводите к сиюминутной экономической выгоде? Во-первых, некоторым важнее заниматься интересным делом, чем много зарабатывать. Во-вторых, есть такая штука — фундаментальные исследования — это когда ты делаешь что-то, но понятия не имеешь, когда и как тебе это пригодится. Так и здесь — всегда можно заниматься чем-то в рассчёте на далёкое и неопределённое будущее.
А дальше можешь перейти в смежную область, в которой есть, что еще осваивать, а можешь вообще сменить вектор и из веб-программирования перейти в программирование контроллеров. Или графики. Или пойти в институт — наукой заняться.
Одно другому, в принципе, не мешает. Если у тебя уже есть большой доход, который не требует существенных временных затрат с твоей строны — у тебя развязаны руки — ты можешь заниматься чем душа пожелает и вообще забыть о финансовой составляющей. Чем плохо?
Я считаю, это не совсем так.
Творчество убивают не знания и опыт, а в первую очередь уменьшение мотивации при работе с одними и теми же задачами одними и теми же инструментами.
В таких случаях творческий человек может начать расти вширь или вглубь.
Например, ты веб-программист, ты клепаешь сайты на РHP-MySQL-JS, но через 5 лет такой работы ты уже PHP в глаза видеть не можешь.
Хочешь расти вширь — бери Java/ASP.NET/RoR/Erlang/*Lisp — изучай новые горизонты, новые технологии, новые фреймворки, напиши вообще свой язык программирования.
Хочешь расти вглубь — переписывай ядро своей системы (которая за пять лет у тебя, конечно же, сложилась) — введи новые абстрации, автоматизируй до такой степени, чтобы одной кнопкой генерировалась страница любой сложности, документируй и почисти код — потом продавай свою систему за большие деньги.
Короче, есть желание творить — будешь творить вопреки, нет желания творить — ничто тебя не заставит.
Грустно это, да… не смешно…
Это не «новые сущности» — это попытка привести язык в соответствие с реальностью.
В другой конторе тоже сидит человек. Ему говорят: «Вот в программу добавлено то-то и то-то» — он берёт исходники, запускает свою любимую IDE, запускает модульные тесты, интеграционные, робота по юзер-интерфейсу, обнаруживает баг, находит, в каком модуле, потом еще навязчиво объясняет программисту своё виденье, как этот баг должен быть испрален.
У обоих в трудовой будет написано «Тестировщик ПО».
Можно подумать, государственный реестр профессий может покрыть весь спектр реальных рабочих специальностей.
Кодер — это кодер — человек, превращающий своё ТЗ в код.
А программист — это где-то и кодер, и бизнес-аналитик, и менеджер, и эксперт в какой-то области.
1. Чтобы превратить ТЗ в код, сначала надо составить это самое ТЗ (чем нередко занимается сам программист).
2. Как правило, ТЗ объясняет конечную цель работы, а вовсе не оптимальную архитектуру или инструментарий. А построение оптимальной архитектуры и подбор инструментария — это почти всегда творческий процесс.
3. Требования к любому не совсем уж мелкому проекту обязательно меняются в ходе его реализации, даже пресловутые архитектуры и инструментарий не статичны и меняются со временем — под это всё надо подстраиваться — и это творческий процесс.
Вообще, творческая деятельность — это всякая деятельность, в которой человеку приходится принимать решения, не имея заранее заданного алгоритма действий, и потому основываясь на интуиции, прозрениях, философии, вкусах, личных предпочтениях и т.д.
В этом смысле даже работа токаря на станке может быть творческой, если он постоянно бросает себе вызовы и покоряет (пусть незаметные для посторонних, но совершенно реальные для него) вершины.
Кажется, Вы просто не совсем понимаете, что означает «структурное программирование»…
Не вижу в этом никакой проблемы.
А на некоторые вопросы вполне допустимо ответить так:
пока что просто запомните, что в таких случаях надо делать так и только так — пусть это будет для вас волшебным заклинанием, а когда мы разберемся с более важными вещами, мы обязательно рассмотрим подробнее и этот вопрос.
JS очень удобен для обучения по причине его максимальной доступности как в плане средств разработки, так и в плане сред исполнения. Опять же, в силу его распространённости по нему есть циклопический объем документации, обучалок, статей, комьюнити и т.п. — любой нюанс легко гуглится. Далеко не каждый язык может этим похвастаться.
И, наконец, программирование — это в первую очередь реализация алгоритмов. И в JS нет НИЧЕГО, что мешало бы обучающемуся понять, что же такое алгоритмы и как они реализуются в процедурном языке программирования.
Всё, что Вы перечислили, никак не мешает обучению программированию. Т.е. ВООБЩЕ никак.
Когда ты начинаешь обучать человека программированию с чистого листа, ты в праве чётко ограничить подачу материала так, чтобы все задачи, которые вы будете решать, обходили большинство граблей и неоднозначностей. Например, сначала рассказывать только про ===, но не рассказывать про ==. Т.е. для начала можно преподавать более строгое подмножество языка — ровно такое, которое позволит обучать программированию как таковому. Со временем, освоив понятие алгоритма и основных структур языка программирование, можно будет дополнять начальное подмножество более сложными структурами. Главное — объяснять, почему такие-то вещи работают таким-то образом. Понимая внутреннюю механику языка программирования человек затем легко сможет перейти на другие языки.
Так или иначе они всё равно транслируются в JS, и без знания его ты не сможешь полноценно программировать под браузер.
GUI тоже вовсе не обязательна для работы OS, однако мало кто работает в чистой командной строке.
JS хорош тем, что доступен практически на любой только что установленно операционке без необходимости что либо устанавливать дополнительно. Браузеры (большинство во всяком случае) содержат все инструменты необходимые для разработки. :) В крайнем случае браузер можно дополнить внешним текстовым редактором.