Со мной связались для выполнения некоторых работ по удаленному управлению светодиодными дисплеями через TCP / IP, но мой опыт и подготовка в основном касаются языка программирования высокого уровня. Я сказал это человеку, который связался со мной по поводу работы, и он сказал мне, что:
«если ты называешь себя программистом, ты должен знать все это»
Должен ли программист действительно знать детали низкоуровневого программирования? Или я могу рассматривать это как концепцию черного ящика, как теоретические знания, но не обязательно делать это или реализовывать языковые решения низкого уровня, имея в виду, что низкоуровневое программирование не является моей компетенцией?
low-level
high-level
работа
источник
источник
Ответы:
Ваш контакт не знает, о чем они говорят. Существует множество языков, методологий, технологий и так далее, и один человек не может знать все необходимые детали очень хорошо. Как программисту вы должны знать, как узнать, что вам нужно для выполнения работы, и выработать подход к решению проблем, который вы можете использовать, чтобы прийти к решению, независимо от того, какой язык программирования вам нужен.
Признать то, чего вы не знаете, - это нормально, но вы также можете доказать, что вы способны учиться достаточно, чтобы достичь желаемого результата, независимо от того, с чем вы столкнулись. Хорошие программисты - просто хорошие решения проблем, которые могут реализовать свои решения на разных языках программирования.
Я не буду работать на кого-то, кто имеет отношение, которое делает ваш контакт.
источник
Я категорически не согласен с этим утверждением. Это все равно, что попросить шеф-повара приготовить что-нибудь, водителя, который управляет любым видом автомобиля, или доктора, который знает все болезни, что является нелепым предположением.
Чтобы быть программистом, нужно уметь писать программное обеспечение на каком-то языке, чтобы выполнять некоторые задачи в автоматическом режиме. Языки и задачи будут варьироваться от программиста к программисту, так же как и то, какие блюда шеф-повар знает, как готовить, водитель знает, как работать, или врач знает, как диагностировать, будет зависеть от специализации в каждой профессии.
источник
Говорят как человек, который никогда не писал ни строчки кода в своей жизни. Это будет тот же человек, который почувствует, что вы сможете сделать это за половину времени, которое вы цитируете. Не спорь с идиотом.
Вы показали гораздо больше знаний и характера, зная свои ограничения. Этот человек говорит о вещах, которые он ничего не знает.
Я думаю, каждый плотник должен знать, как вырезать декоративный предмет мебели. Если пилот может управлять одним самолетом, он может управлять всеми ими.
источник
Большинство программ CS в школе даст вам некоторые знания в программировании низкого уровня. У меня, например, были классы ассемблера, использующие процессор 8088 (хорошо ... так что это немного датирует меня). Тем не менее, я думаю, что многие профессиональные училища в наши дни обходят эти знания - если они не соответствуют действительности, отправьте комментарий.
В итоге, всегда полезно знать, что происходит на уровне чипа - кроме того, ваши языки высокого уровня в конечном итоге окажутся там при запуске.
Однако, чтобы кто-то сказал вам, что вы не программист, потому что вы в настоящее время не знаете, что программирование на низком уровне неосведомлено. Если вам нужны эти навыки для текущего проекта, у вас должно быть достаточно умов или мотивации, чтобы выучить необходимые навыки и затем применить их.
Мне бы пришлось серьезно подумать о том, чтобы не принимать этот проект, если клиент уже так с вами разговаривает - вы никогда не знаете, к чему это может привести.
источник
Я действительно презираю это, когда люди говорят: «Вам нужно знать X, чтобы называть себя программистом». В самом деле? Ну, некоторые люди работают на COBOL весь день и любят его. Возможно, они настолько хорошо справились с этой задачей и своей проблемной областью, что рядом с ними мы все притворщики.
Серьезно, дайте людям уважение к решению проблем, с которыми они сталкиваются, классными и интересными способами. Поймите, что отличное решение проблем происходит из разных источников. Не освоили ли они предполагаемый «контрольный список» навыков, которые все должны знать, чтобы они все могли думать одинаково. Это точная противоположность того, что мы хотим. Каждый «контрольный список» есть и должен быть разным. Чем больше отличается, тем лучше. Программирование - это решение проблем в наши дни. Уважайте тех, кто делает это хорошо, и понимайте, что каждый приходит к столу с различными преимуществами. Это единственный способ помочь друг другу эффективно работать как команда. То, что зная «С» или что-то действительно помогает этому парню быть удивительным, не значит, что ты не
источник
Я предлагаю вам прочитать это:
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Как уже говорилось, когда вы используете абстракцию, то, что находится на более низком уровне, всегда влияет на то, что вы делаете. Это может быть производительность, причина сбоя, соображения безопасности и так далее.
Так что, безусловно, вы должны теперь об этих вещах. Не особенно специалист по архитектуре asm или CPU. Но знание, достаточное для того, чтобы документировать себя, когда вам нужно знать больше, действительно необходимо.
источник
Его аргумент является хорошим примером логической ошибки « Нет истинного шотландца» .
Однако разница между программированием на низком и высоком уровне не в языке, а в области знаний приложений. Присвоение значению true может означать включение светодиода или включение событий щелчка мыши на виджете. Язык не волнует.
Например, взгляните на эту библиотеку для работы со светодиодной матрицей на Arduino. Это не ракетостроение, и на самом деле любой программист мог бы понять это с небольшим усилием, если бы они не подняли «низкий уровень, о нет!» ментальный блок.
источник
Каждый язык программирования имеет свои плюсы и минусы. Изучив несколько, вы получите отличное представление о том, что использовать и как эффективно использовать его при реализации проекта.
Как программист, вы можете специализироваться на конкретном PL, используя его в качестве единственного инструмента для решения любой проблемы, вы также можете знать много PL, но специализироваться на ничем и намного больше между этими крайностями.
Может быть, человек, который сказал вам, что «Фраза» разочарована, возможно, вы были не единственным контактным лицом, с которым он говорил.
Знание проблемы и знание того, какой набор навыков необходим для эффективного решения проблемы, является одной из хороших качеств программиста. Увы, в вашем случае, поскольку у вас нет необходимого набора навыков, возможно, вы можете отослать своего контактного лица другому программисту с необходимым набором навыков.
веселит,
Wardy
источник
Иметь теоретические знания - это хорошо. Возможность изучать язык низкого уровня, когда это необходимо, очень важна.
Но что касается «если ты называешь себя программистом, ты должен знать все это», кто может знать все обо всем? Прежде чем они даже сделают их?
источник
Я перефразирую
К
источник