Насколько переносимы навыки программирования между языками? - PullRequest
10 голосов
/ 22 апреля 2009

Если вы рекламировали позицию программиста для (скажем) разработчика PHP, и кто-то с большим резюме подал заявку, но они были специалистом (скажем) в ASP.NET, и PHP-компонент их резюме был очень легким, Вы все еще рассматриваете их на эту должность? Считаете ли вы, что навыки программирования в целом превосходят определенные языковые навыки?

Ответы [ 17 ]

2 голосов
/ 22 апреля 2009

Я бы сказал, что в целом, хороший программист PHP означает, что у вас есть очень хорошие шансы стать хорошим программистом ASP.NET, если вы потратите время на это. Умение программировать - это талант, а изучение языка - это в основном обучение. Сказав это, я считаю, что это гораздо больше, чем знакомство с синтаксисом языка. Хороший программист должен хорошо разбираться в доступных фреймворках, библиотеках, языковых методах и т. Д. Программист ASP может написать код PHP после прочтения хорошей книги по PHP. Но для того, чтобы стать хорошим программистом на PHP, требуется более глубокое понимание, и это понимание в основном приходит из опыта.

Итак, все сводится к этому - хороший программист, вероятно, может выучить большинство языков. Вопрос: вы бы заплатили за то, чтобы сделать его опытным программистом?

1 голос
/ 22 апреля 2009

Одна из вещей, которая формирует мое отношение к любой технологии (/ платформа / продукт / язык), заключается в том, насколько специфичен опыт обучения. У меня есть коллеги, которые очень хорошо разбираются в MS Access и за эти годы создали огромное количество индивидуальных бизнес-систем (различного качества). Но, несмотря на это, они почти ничего не знают о sql. Если бы они потратили три месяца на обслуживание небольшого сайта PHP / MySQL, они были бы в гораздо лучшем положении (с точки зрения навыков), чтобы хотя бы начать изучать системы Informix / Sybase / SQL Server / etc.

За пределами определенной точки стоимость обучения новым технологиям, вероятно, снижается. Переключение между PHP / VBscript мне показалось довольно раздражающим при изучении обоих, так как простые изменения в соглашениях (например, использование «;») добавили, что немного дополнительного раздражения не нужно в процессе обучения. Совсем недавно мне пришлось переключаться между C #, Perl и VBScript, и это просто не проблема - вы следуете правилам каждой грамматики, не задумываясь об этом.

1 голос
/ 22 апреля 2009

Неправильный вопрос, я думаю. Это как передаваемые навыки программирования между фреймворками. Разработчик asp classic и jsp developer, вероятно, может читать и писать код друг друга. То же самое для Java Server Faces и ASP.NET. Как я знаю из моего текущего проекта, разработчику winforforms на C # может быть трудно перенести свои таланты в проект C # ASP.NET. Синтаксис - это такая небольшая часть основных языков программирования (я использую такие странные символы, как Prolog и F #, которые имеют принципиально иной подход к коду, чем семейство языковых фигурных скобок)

1 голос
/ 22 апреля 2009

Это зависит. Если у кого-то сильный технический опыт, талант и страсть, выбрать новый язык или домен будет довольно легко. Я имею в виду, что в этом весь смысл компьютерных наук - все меняется каждый день, и каждый хороший программист должен быть в состоянии адаптироваться.

1 голос
/ 22 апреля 2009

PHP и ASP.NET могут быть похожими, но PHP и C # очень разные, и если вы используете C # 3, тогда существует очень острая кривая обучения. Если программист может просто выполнять внешнюю работу, это не будет иметь большого значения.

Теперь, насколько переносимы знания между языками, зависит от того, является ли язык одним и тем же типом программирования (структурным, функциональным, объектно-ориентированным). Например, великий программист на Си не может передавать свои знания в ООП или ФП, так как подход к дизайну такой разный.

1 голос
/ 22 апреля 2009

Пока передача происходит между языками программирования одной и той же парадигмы, я думаю, что она легко переносима. Преобразование программиста на C в программиста на Java довольно сложное, и многие мои знакомые учителя предпочитают учеников, не имеющих никакого образования, тем, у кого фон "C" при изучении Java.

0 голосов
/ 22 апреля 2009

Если вы дали хорошее образование в программировании, то да. Под этим я подразумеваю, что вы много программировали, узнали, что процессор делает на низком уровне, разбираетесь в алгоритмах и сложности времени выполнения, и хорошо умеете решать проблемы.

Я думаю, что некоторые языки все еще имеют большую кривую обучения. Возможно, вам удастся попасть в команду программистов на C ++ и помочь им без какого-либо опыта, но вы наверняка будете часто противостоять темным безобразным углам.

Языки высокого уровня, такие как sql или python, могут показаться очень легкими для понимания, но люди с многолетним опытом понимают хитрости, недокументированные функции и недостатки, которые не очевидны на первый взгляд.

...