Насколько сложно превратить программиста из «Школы Java» в программиста на C или C++?

Моя компания, специализирующаяся на C++, всегда ищет недавних выпускников. Однако из-за феномена школ Java мы, как правило, проводим собеседования с сильными Java-программистами, которые могут хоть немного разбираться в C++. Часто классы C++ не готовят студентов к работе на C++. Тем не менее, зачастую это умные дети, которые хотят учиться и стараться изо всех сил.

Каждое интервью я борюсь с этим фундаментальным вопросом:

Насколько сложно превратить программиста из "Школы Java" в программиста на C или C++? Была ли у вашей компании опыт превращения стереотипного программиста из «Школы Java» в сильного программиста на C++? Стоит ли прилагать усилия?

Одна из причин, по которой я борюсь с этим, не только из-за разницы языков C или C++ и Java, но и из-за фундаментальных навыков, которые приходят с изучением C или C++, которые, как мне кажется, часто теряются в Java School. К ним относятся структуры данных, вычислительная сложность, ручное управление памятью и все, что говорит Джоэл Спольски здесь.

Часто, насколько я могу судить, ученик будет обладать некоторыми из этих фундаментальных навыков (уметь ответить на несколько вопросов), но у меня все еще будет большая часть моего разума, которая крайне скептически относится к тому, насколько хорошо кто-то может их изучить. навыки, не запачкав руки в каком-нибудь C или C++. Может, мне нужно развеять этот стереотип. Я просто несправедлив?

В любом случае, каков ваш опыт превращения программиста из "Школы Java" в программиста на C или C++?

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

mmcdole 30.10.2008 21:12

Я уверен, что все они этого не делают. На самом деле, возможно, большинство этого не делает, но достаточно экономить на них. К сожалению, это создает стереотип «школы Java», который применяется к некоторым выпускникам. Просто сложнее избегать этих тем в C или C++ для выполнения работы. Особенно когда на некоторых курсах говорят - ни STL, ни буста.

Doug T. 30.10.2008 23:54

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

Pyrolistical 31.10.2008 03:18

@ Пиролитический - рискуя показаться неприятным (и поверьте мне, я не пытаюсь показаться противным), не каждый может позволить себе роскошь переписать много унаследованного кода на языке повседневной жизни. Некоторые из нас застряли с большими инвестициями в старые кодовые базы.

Onorio Catenacci 03.11.2008 03:56

это так же просто, как превратить генерала в солдата

IAdapter 03.11.2008 15:37

@Pyrolistical, может бежать? Правда. Но следует ли бежать? У меня есть группа приятелей, программирующих консоли для видеоигр, которые в случае смерти перевернулись бы в могиле при мысли об использовании Java.

Nosredna 31.05.2009 04:53
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
28
6
6 545
22
Перейти к ответу Данный вопрос помечен как решенный

Ответы 22

Зависит от IQ программиста. Настоящий вопрос: достаточно ли умен этот программист, чтобы мы вкладывали время в обучение? Чем умнее, тем меньше времени ему нужно на обучение.

Программист на Java вписался бы прямо в дом C#, как и разработчик на C++.

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

Программисты программы. Тот, кто действительно умеет программировать, может выучить любой язык. Конечно, есть кривая обучения, но хороший кодировщик может быстро освоиться. Если вы ждете кого-то с продвинутыми знаниями, вы все равно не станете нанимать новых выпускников, верно? Так что в любом случае придется учиться.

Я не уверен, что это касается C / C++. Если рассматриваемый программист работал только с «современными» языками и никогда не выполнял работу на языке ассемблера, то ему или ей, возможно, будет действительно сложно разобраться с управлением памятью, независимо от того, насколько они хороши в Java или C#.

Jim In Texas 31.10.2008 01:43

Я также не уверен, что это справедливо для того, чтобы сказать, что вы делаете функциональный язык, когда все, что вы сделали, это Java или C#. Я считаю, что изучение нового языка тривиально, если вы познакомились с чем-то в том же классе языков, но я не считаю универсально тривиальным переход от одного к другому.

Doug T. 31.10.2008 16:31

При этом упускается из виду фундаментальная разница в навыках между C * и Java. Очень легко преуспеть в Java, не изучая критически важных навыков программирования, которые необходимы для большинства типов коммерческого программирования. Подход «программистские программы» привел к массовому притоку программистов, которые даже не знают, как программировать.

David Frenkel 06.08.2010 03:01

И что еще хуже, Дэйв ... большинству все равно, что они не знают. Я получу более быстрый процессор .. Вы боретесь, как вы тренируетесь… вы никогда не думаете о мелочах, и вы будете платить за большие.

baash05 22.11.2011 16:02

Ох .. Люблю "современные" кстати .. и как насчет "управляемых" .. Я много лет управляю своей памятью, большое вам спасибо.

baash05 22.11.2011 16:02

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

Это просто другой язык.

И если вы будете придерживаться относительно небольшого подмножества чистых функций ООП, с точки зрения Java-разработчиков действительно не так уж и многому. Единственное, чему вы должны научить их, чтобы они могли быть обычными программистами ООП, - это тому, что они должны реализовать деструктор, заботящийся о своей памяти.

Однако, если им следует использовать STL, шаблоны, исключения и тому подобное, им, вероятно, потребуется дополнительное руководство.

Я видел, как разработчики Java пишут код на C++ с мышлением «это просто другой язык». Это как пытаться говорить по-испански с итальянцем, потому что это оба романтических языка, так что должно быть много общего.

Tom 31.01.2009 19:40
Ответ принят как подходящий

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

Они не понимают указатели, но хорошее программирование на C++ обычно не использует указатели сложным образом. (Есть исключения, но, поскольку я не знаю, чем занимается ваша компания, я не могу сказать, будут ли они применяться.) В конце концов, вы, вероятно, не хотите, чтобы ваши разработчики писали свои собственные связанные списки вместо использования std :: список.

Они не поймут ручное управление памятью, но в C++ это намного проще, чем раньше. В современном C++ делать собственное управление памятью стало сложнее из-за возможности исключений, поэтому вы хотите практиковать RAII практически со всем (используя auto_ptr, boost :: shared_ptr, что угодно).

Если бы у меня были какие-то вещи, я бы нанял их, если они хорошо выглядели. Я бы знал, что могут возникнуть проблемы (в конце концов, C++ - более требовательный язык, чем Java), и у меня было какое-то представление, как с ними бороться.

Нет причин избегать приема на работу людей из колледжа только потому, что у них нет именно тех навыков, которые вам нужны. Умные будут учиться, и вы, вероятно, не захотите нанимать неразумных.

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

jkeys 15.07.2009 23:54

Для каких структур данных важны указатели? Большинство основ доступно в форме без указателя из стандартной библиотеки или Boost. Ссылки не должны быть слишком сложными для поиска. Начните с них, а затем расскажите о деталях более низкого уровня.

David Thornley 16.07.2009 00:10

@Hooked: указатели необходимы только тогда, когда они эквивалентны ссылкам на Java, поэтому фона Java должно быть достаточно.

David Rodríguez - dribeas 09.12.2009 19:48

@ Дэвид Родригес: А как насчет указателей на переменные стека? Это часто бывает полезно, когда вам нужна семантика передачи по ссылке. Это невозможно сделать непосредственно в Java.

Jørgen Fogh 04.08.2010 00:51

@ Jørgen Fogh: Если вам нужна семантика передачи по ссылке, вы должны использовать ссылки, а не указатели, и эту концепцию нетрудно понять: ссылка (C++, а не java) - это просто псевдоним другой переменной, будь то в стек или динамически распределенный не имеет значения.

David Rodríguez - dribeas 04.08.2010 02:05

Я работал со школьниками Java. У них действительно есть проблема с выделением и очисткой памяти. Но эта боль длится всего пару месяцев, и умные довольно быстро улавливают разницу ... Тем не менее ... они немного более ленивы. Хотя у Хайнлайна есть отличная цитата по этому поводу.

baash05 22.11.2011 15:57

Относительно просто выяснить, хорошо ли понимает выпускник основы независимо от его «языковой» группы. Эти основы включают 1) структуры данных 2) операционные системы и 3) алгоритмы и их сложность. По сути, это концептуальные области, и обсуждение дизайна или подхода к конкретной проблеме в них может показать, насколько они сильны или слабы. Вам не нужно заставлять их писать код.

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

Я всегда обращаюсь к этим основам и их оценке - новичку или опытному. Это основные критерии для приема на работу.

Я сам являюсь java-разработчиком, но в колледже у меня была база C / C++. И я рад, что начал с управления памятью, списков, очередей, стеков и, самое главное: указателей. Хотя я не использую указатели явно, я знаю, что происходит в задней части моего приложения, нахожу утечки памяти, проблемы с производительностью и т. д.

Я думаю, что лучшее решение - не просить разработчиков Java / C# изучать C / C++ (и все, что связано с этими языками), когда они идут на работу, НО преподавать им эти предметы в колледже. Это было бы лучшим решением.

В настоящее время это похоже на устранение последствий / симптомов, а не фактической причины.

Я программировал на многих языках и считаю, что C++ очень труден для понимания и работы с ним по сравнению с другими языками, которые я использовал, такими как Java, C, Python, Fortan, Javascript, ASP и Perl. Я бы сказал, что это отдельная категория. Я НЕ верю, что владение одним из языков, которые я только что перечислил (включая Java), является отличным показателем того, насколько хорошим программистом на C++ может быть человек. Я думаю, что C++ требует почти другого типа мышления и, конечно же, способности удерживать в голове огромное количество информации во время кодирования, в отличие от сосредоточения внимания в основном на бизнес-требованиях.

Я много лет пытался овладеть C++, несмотря на то, что мне никогда не приходилось использовать его на работе (то есть учиться в свободное время). Это очень трудный процесс, и по прошествии всего этого времени я не уверен, что смогу быть успешным и продуктивным как программист на C++. Я думаю, что в целом я достаточно компетентен в этих других языках.

Итак, основываясь на моей небольшой и явно предвзятой выборке одного человека (меня!), Я бы посоветовал склоняться к разработчикам, которые продемонстрировали значительный прошлый опыт работы с C++, если это то, что они собираются делать на работе изо дня в день. Вам нужно будет потратить больше времени на поиск этих кандидатов, но я думаю, у вас будет больше шансов на успех в долгосрочной перспективе.

Отличный честный ответ. Не могли бы вы пояснить, что, по вашему мнению, является камнем преткновения? Синтаксис? Гибкость модели программирования?

Larry OBrien 30.10.2008 21:10

Я думаю, это сводится к слишком большому количеству деталей, чтобы запомнить все сразу, и слишком большому количеству подводных камней. Как говорит Страуструп (я думаю), это слишком "дружелюбно к экспертам".

unintentionally left blank 30.10.2008 21:24

Не расстраивайся. Я не думаю, что гуру знают более 40% языка.

Doug T. 30.10.2008 22:41

Я не чувствую себя плохо, но я устаю от большой стопки книг по C++ на прикроватной тумбочке, из-за которых нечего показать. Последней является "Accelerated C++" от Koenig / Moo, которая на самом деле довольно хороша (пока) с точки зрения предоставления практических примеров по сравнению с бесконечными языковыми мелочами.

unintentionally left blank 30.10.2008 23:42

@Doug: Может быть, но интересно, что это может быть потому, что C++ был разработан так, чтобы быть независимым от целей, люди изучают его подмножество, которое лучше всего подходит для их нужд и обычно не требует остального.

tloach 31.10.2008 03:05

Кроме того, я сомневаюсь, что даже гуру знают более 10% Java: D

tloach 31.10.2008 03:05

@tloach, это побочный эффект сборки мусора. И да, я публикую это несколько месяцев спустя, но, черт возьми, мне нужно пошутить.

James McMahon 13.03.2009 02:53

«Вы не можете научить высоким». - какой-то известный тренер по баскетболу.

При приеме на работу вы ищете человека, который может быстро изучить новые концепции и быстро освоить разучиться привычки. Именно последний может подкрасться к вам. В случае перехода Java-> C++ вы можете столкнуться с «отучением» таких вещей, как сильная зависимость от IDE, «все является объектом», слишком высокоуровневая ментальная модель объектов и программ и т. д.

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

Я бы не стал уделять много внимания использованию IDE ... Недавно я перешел на eclipse для java (android), но я занимался разработкой в ​​среде RIM (также java). 90% моей оплачиваемой жизни я провел в VS для C++ .. хотя я начал C++ в Borland. Идеи созданы, чтобы учиться. И вам не обязательно быть профессионалом в среде IDE, чтобы хорошо владеть языком.

baash05 22.11.2011 16:14

Возможно, я не совсем понял: я думаю, вам следует подтвердить, что они не полагаются на IDE.

Larry OBrien 23.11.2011 00:23

Говоря чисто с точки зрения программиста на C++, я думаю, что Java-разработчик, желающий изучить C++, столкнется с довольно крутой кривой обучения. Да, на каком-то уровне код разработки похож на всех языках. Однажды меня попросили написать код на макроязыке Excel (до VBA). Я справился, но это было похоже на попытку написать Война и мир с помощью словаря пятого класса.

Есть и другие проблемы с C++ (указатели, управление памятью, перегрузка операторов), которых, насколько мне известно, просто нет в Java, и это тоже немалые проблемы. Особенно, если вы ищете кого-то, кто поможет с устаревшим кодом C++, это может создать большие препятствия. И я думаю, что начну с любого нового найма, по крайней мере, с некоторого технического обслуживания на начальном этапе.

проголосовать за одну только метафору :)

tloach 30.10.2008 22:29

Мой пост здесь - почти ответ на ваш вопрос. Как Джоэл грустный в ссылке, которую вы предоставили, это действительно плохо, что сегодня они не изучают основы в школе. Но хорошие все еще учатся, они берут классы по операционным системам и взламывают планировщик ядра Linux, они делают проекты в сборке и т. д.
Большинство сотрудников в моей компании только что закончили обучение, и невозможно сдать наши экзамены, не понимая основ, так что подбадривайте себя, ведь вокруг все еще есть хорошие кандидаты, которые вам нужно знать как их найти.

Я начал с C / C++ и перешел на Java.

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

Тем не менее, для хорошего инженера довольно легко переключаться между указателями, распределением памяти и т. П. - но я думаю, что невероятно сложно перейти от объектно-ориентированного подхода со сборкой мусора к не-объектно-ориентированному программированию.

Когда вы работаете с системой с GC, вы намного лучше думаете о своем дизайне на высоком уровне. На самом деле вы можете кодировать более понятным способом. Вы действительно начинаете иметь классы, которые сосредоточены на единственной ответственности (большинство классов будет состоять из нескольких экранов - большинство методов будут тривиальными).

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

Это как если взять свой гоночный автомобиль и поставить на него кондиционер, гидроусилитель руля и электрические стеклоподъемники. Гораздо удобнее, но не по той причине, по которой он был выбран в первую очередь.

Кстати, мне бы очень хотелось увидеть хороший OO-код на C++, если у кого-то есть ссылка ...

Это сложнее, чем превратить хорошего программиста на C / C++ в хорошего программиста на Java. Здесь акцент сделан на «хорошо». Любой человек плохо умеет программировать на любом языке. Хорошие программисты на C++ должны хорошо разбираться в указателях. Одна из наиболее важных концепций C++ - итератор, который является обобщением указателя C посредством перегрузки оператора, что делает многие алгоритмы действительно универсальными для C++.

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

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

Так что же делать менеджеру по найму, если люди не пишут в своих резюме: «Я не получаю указателей и никогда не получу».

Итак, если вы согласитесь с гипотезой Джоэла о том, что способность «получать» указатели и рекурсию - это врожденная личная черта, которая есть у людей или их нет, я вижу следующие варианты:

  1. Нанимайте исключительно в школах C / C++, а не в школах Java.
  2. Если нет школ C / C++, тогда наймите опытных программистов C / C++, а не из колледжа.
  3. Если вы собираетесь нанимать сотрудников из колледжа, то примите это, что у вас будет немалая доля неудач в их преобразовании.

Я думаю, что эта идея «школы Java» в значительной степени сфабрикована. Университет, в котором я нахожусь, использует java для преподавания основных курсов CS (структуры данных, алгоритмы и т. д.). Однако есть много других курсов, которые используют другие языки, такие как C / C++ / Scheme, и на курсах более высокого уровня работа может выполняться в любой язык.

Вы действительно думаете, что имеет значение, на каком языке преподаются основные концепции программирования?

Это имеет значение. Изучение языка, который заставляет вас понимать глубокие концепции, создает гораздо более глубокое понимание машины и того, что на самом деле представляет собой кодирование.

Paul Nathan 30.10.2008 23:35

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

Max Lybbert 31.10.2008 01:44

Как человек, который в первую очередь "Java-школьник" и совсем недавно получил высшее образование, я определенно думаю, что смогу выучить C или C++ без особой боли ...

Однако очень не хочу. Я могу говорить только за себя, но C может быть довольно уродливым языком, если вы выросли на Java. Я думаю, что мотивация будет большим препятствием. Мотивация и, возможно, некоторое нытье по поводу того, что "в Ява это намного проще, почему не C Ява?" :)

Если вам удастся найти кого-то с должной мотивацией, все остальное у вас получится. :)

Мотивация определенно важна. Кроме того ... никто в команде не будет сочувствовать, когда новичок будет ныть обо всем, что C++ не делает, что их «старый» язык делал (и удобно игнорирует все, что C++ делает лучше, чем их старый язык).

Tom 31.01.2009 19:37

Я сам учусь, и большая часть моей курсовой работы в ранние годы была на Java, но я всегда пытался делать что-то на C++ просто для удовольствия. В этом семестре начался новый курс, по которому каждый должен был программировать на C++ + OpenGL + Qt, а многим другим студентам, которые никогда не использовали C++, очень трудно адаптироваться и они часто проводят буквально часы, борясь с простыми ошибками времени компиляции. У этого может быть много причин (включая глупость), но я думаю, что для кого-то, кто Только использовал Java (а многие студенты просто используют то, что им говорят), может быть довольно сложно перейти на C++. К сожалению, я не могу придумать никакого способа облегчить боль переходного периода и могу думать только о словах Дейкстры:

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

Я думаю, что в этом Дейкстра ошибался. Мне кажется, у большинства программистов ушло около 15-20 лет, чтобы избавиться от извращений BASIC.

Nosredna 31.05.2009 04:47

Мое эмпирическое правило: я бы предпочел, чтобы программист на C / C++ писал на Java, чем программист на Java писал на C / C++. Я не могу сказать, какие программисты Java могут справиться с управлением памятью и указателями, пока они не попробуют.

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

  1. Бесстрашный. Они не обращали внимания.
  2. Испытывают страх и панику, потому что знают, что не могут справиться с такой сложностью.
  3. Напуганные и нетерпеливые, потому что понимают, что даже люди умнее их могут получить удар в живот из-за странных проблем с памятью и оборудованием, но, черт возьми, это действительно похоже на хороший вызов.

Я бы нанял из группы 3.

Я не покупаю «Вы либо получаете указатели / рекурсию, либо нет». Ум - это чистый лист. Кто угодно может чему-нибудь научиться, имея достаточно времени и интереса. Вопрос в том, интересно ли этим детям.

Мы искали стажера для моей работы, и я просмотрел около 30+ резюме из урожая этого года. Главное, что меня шокирует, - это то, как немногие из них сделали черт побери, чего от них не требовал ни один из их классов или работа. Найдите того, кто сделал что-то самостоятельно и получил от этого удовольствие, и вы останетесь довольны.

Тем не менее, лично я бы не стал тратить время на кого-то, кто не понимает C и ассемблер. Существует большая разница между отладкой дампа ядра с помощью gdb из-за сбоя C++ и просмотром трассировки стека Java. C++ - действительно ужасный язык по многим причинам, но в нем хорошо то, что у него есть общего с C.Это мощный способ указать компьютеру делать именно то, что вы хотите, без необходимости беспокоиться. о том, какую еще чепуху творит какая-то среда выполнения.

Также, если вы хотите сэкономить время, не связывайтесь ни с кем не из 10 лучших инженерных школ. Нельзя сказать, что в школах второго уровня нет отличных учеников, но с практической точки зрения вам не нужно, чтобы ваш наниматель был одним из них.

Массачусетский технологический институт, Стэнфорд, Калифорнийский университет в Беркли, Технологический институт Джорджии, Иллинойс Урбана Шампейн, CMU, Калифорнийский технологический институт, Университет Южной Калифорнии, Мичиган-Анн-Арбор, США, Техас, Остин.

Я также не стал бы нанимать кого-либо для написания программного обеспечения, использующего Microsoft Windows. Будучи студентом информатики, вы просто не могли бы так интересоваться программным обеспечением или работой компьютеров, не став пользователем Linux (даже лучше, если вы используете FreeBSD или что-то еще)

«Ум - это чистый лист». Я думал так, пока у меня не родилось трое детей. Теперь я верю в способности.

Nosredna 31.05.2009 05:03

лол .. несмотря на твоих тупых детей ...

nosatalian 31.05.2009 05:11

У вас все было хорошо до последних трех абзацев.

PowerApp101 31.05.2009 05:11

Моя цель - не делать людей счастливыми. Это помочь плакату. Применяя несколько простых фильтров «хорошая школа» и «не-Windows-пользователь», вы можете значительно повысить вероятность того, что ваши кандидаты хороши. Конечно, поскольку большинство людей а) не ходили в одну из этих школ и б) пользуются окнами, правда непременно будет болезненной.

nosatalian 31.05.2009 05:16

-1: Хороший программист мог писать код на пишущей машинке. Навыки находятся в голове, а не в операционной системе. Я использовал Linux, Windows и Mac, и я многому научился у каждого из них.

Jørgen Fogh 04.08.2010 01:01

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

Хорошая программа по информатике должна учить студентов основам, которые одинаковы независимо от того, какой язык программирования вы используете. То, что вы упомянули, управление памятью, структуры данных и т. д. - все это часть этих фундаментальных навыков. По моему опыту, программист, знакомый с этими концепциями, разработает более лучшие (более эффективные, быстрые, простые) решения, чем те, кто не понимает этих концепций, особенно для нестандартных задач.

Что касается выбора языка, хороший программист должен уметь освоить новый язык программирования за несколько недель, а овладеть им за 1-2 месяца. Это особенно верно для C++ и Java, у которых так много общих функций.

Вы должны прочитать «Научитесь программировать на C++ за 10 лет».

baash05 22.11.2011 16:18

Другие вопросы по теме