Управление концепцией «мастер на все руки»: не сосредоточен на чем-то одном, профессионал в ограниченном количестве вещей - PullRequest
4 голосов
/ 21 июля 2010

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

Когда я впервые начал программировать(год назад), я пошел с PHP и MySQL.Затем я отправился в Одесск, чтобы начать поиск дополнительных работ, и я был поражен;это был не просто «PHP», это были Wordpress, Joomla, COdeigniter, Zend и т. д. Зная это, я решил изучить Joomla, Codeigniter и Kohana.Пока я занимался веб-серфингом, я наткнулся на Python и Ruby.Тогда я решил изучить Python, Django и Pylons.Пролистав еще немного, я наткнулся на PostgreSQL и MongoDB.Поэтому, наряду с MySQL, я решил изучить PostgreSQL и MongoDB.

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

Тем не менее, мое любопытство снова на свободе, когда я услышал о разработке для iPhone и Android (особенно когда пришла игра ASE, позволяющая мне использовать Python и PHP для Android), так что несколькочерез несколько недель я, возможно, снова буду ходить по совершенно новым местам, когда буду отправляться на разведку.

Я просто не могу контролировать свое стремление к разведке и изучению новых вещей, но я боюсь, что при этом яможет быть не в состоянии справиться с одной или некоторыми из этих вещей (моя цель - быть опытным веб-разработчиком в PHP, Python, веб-дизайне и вышеупомянутом программном обеспечении БД).Поэтому, чтобы управлять вещами, я решил заняться веб-разработкой (и мобильной сетью) (я даже планировал заняться искусственным программированием, программированием для игр и настольных компьютеров, но мне пришлось отказаться от этого), особенно с вышеупомянутыми технологиями.

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

Кто-нибудь из вас был опытнымв более чем одном языке программирования или в более чем одном программном обеспечении для баз данных (и под «опытным» я подразумеваю «действительно хороший»)?Как ты сделал это?Когда / Где вы перестали изучать совершенно новые вещи?

Ответы [ 4 ]

6 голосов
/ 21 июля 2010

Я считаю логику 'мастером на все руки, но мастер ни одного' иногда может быть ошибкой.

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

В медицине употребляют фразу: «показать онкологию пациента, и у него обнаружится рак, показать неврологу того же пациента, и у него обнаружится неврологическое заболевание» .

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

Это, однако, не означает, что выне может быть экспертом во многих вещах.Вы упомянули, что программировали только год.Вы, очевидно, очень энтузиаст и обладаете способностями, но это очень короткое время.У вас будет много лет, чтобы стать глубоко знакомым со многими аспектами вашего ремесла.

Кто-нибудь из вас имел опыт более чем в одном языке программирования

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

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

Знакомство с различными областями, такими как машинное обучение, искусственный интеллект, численное моделирование, компьютерное зрение, компьютерная графика, многие отрасли высшей математики и т. Д., Гораздо сложнее достичь и поддерживать.Такие вещи я часто оплакиваю, не зная и, кажется, не имея достаточно времени для экспериментов.Я думаю, это зависит от того, что вам нужно использовать.

2 голосов
/ 21 июля 2010

Как Akusete хорошо подводит итог :

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

Вместо изучения Java и C #, было бы лучше выучить Java / C # процедурный язык.То же самое касается баз данных;играя с реляционной базой данных SQL и базой данных NoSQL , вы узнаете намного больше, чем вы, изучив MySQL и PostgreSQL, например.

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

PS: Я думаю,это должно быть Сообщество Wiki:)

1 голос
/ 21 июля 2010

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

Создание этих базовых знаний очень важно.Такие вещи, как концепции ООП, MVC, лучшие практики кодирования и т. Д., Должны быть вам понятны.Мой совет: выберите язык / платформу и будьте очень хороши в этом.Будьте мастером Python или гуру Java.Знания, которые вы получаете от этого, можно перенести на другие платформы, которые вы изучите.Поскольку вы находитесь в начале своей карьеры, постепенно осваивайте одну / две платформы, тогда вы можете начать прыгать, изучая другие платформы.Слишком много фрагментации также плохо в отношении принятия новых навыков, особенно если вы новичок в этом.Переход с одной платформы на другую платформу лишает вас знаний, заставляя вас часто переучиваться или пересматривать.Опять же, развейте эти базовые знания.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...