Беспорядочное изучение языков

vovhik_0

Сложилась такая ситуация: прогал на C++ где-то четыре года, сейчас по работе изучаю и пишу на C# + ASP, плюс также иногда читаю про HTML, CSS и javascript.
В последнее время возникает ощущение, что, если продолжу в таком духе, то либо стану классным, либо "за двумя зайцами погонишься, ни одного не поймаешь".
Вот теперь думаю: либо остановиться, и качаться в сторону C++ или C#+ASP, либо ещё JAVA изучить :grin:

lubanj

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

uncle17

У меня все равно длиннее

okis

Учи хаскель

Werdna

языко-независимые вещи. скажем ооп.
Зачем ООП? Это чо вообще? Сферический конь в вакууме?
Учить надо конкретные технологии, вникать в их суть, погружаться во внутреннее устройство, находить положительные и отрицательные стороны. Хороший практик — это не знание синтаксиса, а знание сути технологий, методов применения и, самое главное, спектра решаемых технологией задач.
И прежде всего стоит изучать не модные технологии, а хорошо работающие, пусть и не известные. Хорошо работающие желательно выбирать не по дизайну материалов с презентациями, а по конкретным метрикам — производительность, удобство внедрения, лёгкость кастомизации.
Ничего нет зазорного, чтобы изучать даже Джумлу и Друпал, хотя это «АДъ и Израиль», но не надо становиться адептом секты после первой инсталляции и закрывать для себя другой мир.
Также стоит расширить свой кругозор и уйти от языков. Изучи, например, nginx — научись настраивать, делать всякие связочки с ПХП или Питоном. Засетапь разные вики-движки, поизучай как и что там делается. И всегда, всегда веди дневничок, описывай что тебе показалось хорошим, а что — не удачным решением.
Но можно пойти другим путём. Выучить Си-шарп с джавой, выбрать одно по вкусу и стать красноглазым фанатиком, тогда тебя будут хорошо принимать на позиции соответствующей макаки, ведь ты будешь круто знать синтаксический сахар любимого языка!

6yrop

Но можно пойти другим путём. Выучить Си-шарп с джавой, выбрать одно по вкусу и стать красноглазым фанатиком, тогда тебя будут хорошо принимать на позиции соответствующей макаки, ведь ты будешь круто знать синтаксический сахар любимого языка!
на должность макаки, да, есть и такое, но есть шанс заняться нормальной разработкой.
 
Также стоит расширить свой кругозор и уйти от языков. Изучи, например, nginx — научись настраивать, делать всякие связочки с ПХП или Питоном. Засетапь разные вики-движки, поизучай как и что там делается. И всегда, всегда веди дневничок, описывай что тебе показалось хорошим, а что — не удачным решением.

это что за должность? Вроде не разработчик. Профессиональный сетапер что ли? Это такой специфичный админ что ли?

6yrop

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

6yrop

Хороший практик — это не знание синтаксиса, а знание сути технологий, методов применения и, самое главное, спектра решаемых технологией задач.
судя по предыдущим тредам, ты не особо в курсе про спектр решаемых задач, скажем, на основе РСУБД

Werdna

это что за должность? Вроде не разработчик. Профессиональный сетапер что ли? Это такой специфичный админ что ли?
CTO и главный архитектор. Надо всё уметь, всё знать.
Разумеется, таких крутых чуваков очень мало. Которые реально много знают и всё могут сделать сами. Разумеется — это профи самого высокого уровня.

Werdna

ты не особо в курсе про спектр решаемых задач, скажем, на основе РСУБД
Да, это моё слабое звено, такие задачи как бухгалтерию для Ашана я не знаю как написать круто, готового решения в голове нет. Но если надо — за года два напишу, не в одиночку, разумеется.

6yrop

CTO
вот это ключевые скилы СТО? :grin: "Изучи, например, nginx — научись настраивать, делать всякие связочки с ПХП или Питоном. Засетапь разные вики-движки, поизучай как и что там делается."
 

главный архитектор
 

это не они Architecture Astronauts? :grin:

6yrop

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

karkar

Программист, не умеющий писать на хотя бы 8 разных языках, - говно. Не умеющий читать код на произвольных языках (кроме совсем хардкора вроде J и Piet) - тем более.

Dimon89

Программист, не умеющий писать на хотя бы 8 разных языках, - говно.
Я что-то даже не вспомнил сходу столько популярных языков. Навскидку (по алфавиту): C++, C#, Delphi, Haskell, Java, Javascript, Perl, Python, PHP, Ruby... что ещё? Всякие XSLT/HTML/SQL считать? Или ты русский/английски посчитал для грамотного написания комментариев? ;)

Anna551

А мне кажется, что парадигмы, они как бы есть, но решают все равно надстройки над этими языками, технологии и фреймворки, которые создавали люди. Ведь в конце концов задача программиста - решать задачи заказчика быстро, эффективно, а не писать идеально.
Но фреймворки языков 4-х знать необходимо, да
1 из императивных (плюсы, шарп, мой любимый обжектив)
1 из функциональных
1 из скриптовых
какую-нибудь веб-чешую и БДшки...)
А вообще по себе чувствую, что успевать это практически нереально, надо становиться ПМом, который половину своего времени может занять ботвой новых технологий, зато ему некогда кодить. И наоборот..
Хотя это может я просто ленивое хуйло)

6yrop

зато ему некогда кодить
напомнило http://www.youtube.com/watch?v=zqETgaYxlt0&t=30m0s

Dasar

Я что-то даже не вспомнил сходу столько популярных языков.
навскидку, например, так:
1)бд - sql
2)обмен данными - xml/xslt/xpath/xquery
3)разметка rich-текста - html/css
4)веб - javascript
5)универсальный высокоуровневый - c#/java
6)универсальный низкоуровневый - c/c++
7)автоматизация в ОС - bat/bash/powershell
8)универсальный скриптовый - python
9)уровень железа - asm
10)парсеры - antlr/bison/yacc/peg
конечно, больше надо понимать идеологию построения этих языков (чем знание самих языков) и уместность их применения. Это позволит избежать построения велосипедов
ps
и, конечно, еще остается всякая экзотика - типа форт, функциональщина, пролог и т.д.

Dimon89

1)бд - sql
2)обмен данными - xml/xslt/xpath/xquery
3)веб-разметка - html/css
4)веб - javascript
5)универсальный высокоуровневый - c#/java
6)универсальный низкоуровневый - c/c++
7)автоматизация в ОС - bat/bash/powershell
8)универсальный скриптовый - python
9)уровень железа - asm
10)парсеры - antlr/bison/yacc/peg
Ну я бы слил пункты 3-4 и 7-й убрал нафиг ибо есть 8-й, а в целом - да, всё правильно, минимальный джентельменский набор.

Anturag

Программист, не умеющий писать на хотя бы 8 разных языках, - говно. Не умеющий читать код на произвольных языках (кроме совсем хардкора вроде J и Piet) - тем более.
Интересуюсь, а Prolog — это хардкор или нет?

Dasar

Ну я бы слил пункты 3-4
3-ий пункт больше про разметку rich-текста. Всякие rtf/ooxml/tex/pdf/wiki-markup/ubb сюда же.
7-й убрал нафиг ибо есть 8-й
7-ой никуда не денется, потому что если уж сам их не пишешь, то их пишут другие - а значит необходимо уметь их читать и вносить исправления.

Werdna

вот это ключевые скилы СТО?
Да, грамотный CTO должен в деталях разбираться в том, как работают те или иные технологии. В идеале он должен в любой момент выполнить любую работу за любого сотрудника тех. департамента. Это нужно и для того, чтобы определять технологии в компании, и для того, чтобы понимать сферы компетенции коллег, и для того, чтобы в три часа ночи разобраться с аварийной ситуацией.
Разумеется, речь не идёт о «свадебных генералах», суть работы которых сводится к созданию презентаций, болтовне и прочей ИБД.
И да, CTO — много, хороших CTO — мало.

Dasar

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

marat7256

Не прогал на фортране - не программист!

6yrop

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

Werdna

Сетапер, конечно, хреново определит стратегию. Но не бывает архитектора-теоретика без практики.
Я же как предлагаю не "yum install nginx" написать, а изучить технологию. Научиться конфигурить апстримы, поизучать как они будут работать в случае таймаутов, поиграться с кешированием и гзипованием.
Даже такие мелочи как настройка php-fpm и долбление в 100 потоков с соседних машин — интереснейшая и очень поучительная игра.
В любом случае это полезнее, чем читать про сферическое ООП в вакууме.

6yrop

чем читать про сферическое ООП в вакууме
с этим согласен

luna89

C# + ASP, плюс также иногда читаю про HTML, CSS и javascript.
По количеству технологий, это обычный стек с которым знаком любой веб-кодер, мне кажется ничего неподъемного тут нет.
C#+ASP, либо ещё JAVA изучить :grin:
Это все замшелое легаси, не советую.

6yrop

легаси
а что сейчас актуально?

apl13

всякая экзотика - типа форт, функциональщина, пролог и т.д.
:facepalm:

apl13

Программист, не умеющий писать на хотя бы 8 разных языках, - говно. Не умеющий читать код на произвольных языках (кроме совсем хардкора вроде J и Piet) - тем более.
Unlambda в какую категорию попадает? :umnik2:

luna89

а что сейчас актуально?

Ну, ASP.NET вроде официально в микрософте считается устаревшим.
Что касается явы, то я, например, как фронтенд программист вижу, что у сайтов на яве не бывает хороших современных фронтендов. Например, тулзы для сборки клиентского js обычно не запускаются в rhino.js. Если бы кого-то интересовала ява как платформа для веба, то это уже давно починили бы.

Dasar

Ну, ASP.NET вроде официально в микрософте считается устаревшим.
asp.net пока никто не отменял.
появлялись лишь надстройки над ним. Сначала появился asp.net mvc, затем asp.net web pages (razor)
http://www.asp.net/get-started

6yrop

Ну, ASP.NET вроде официально в микрософте считается устаревшим.
алё, это единственно, что остается мейнстримом на .NET. Всё остальное либо устарело, либо не взлетело http://www.infoq.com/articles/Win8-LOB-Options

yroslavasako

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

Marinavo_0507

PowerShell defaults to no letting scripts run from Windows Explorer
а чё так?

elenangel

ява

клиентского js

rhino.js
:confused:

luna89

:confused:
Тулзы для сборки яваскрипта написаны на яваскрипте, для их запуска нужен интерпретатор на машине разработчика и билд сервере. Rails, например, сейчас требует node.js.
Rhino удобен тем, что есть в JDK из коробки.

psm-home

Rhino удобен тем, что есть в JDK из коробки.
Видимо ява окончательно пожрала мой мозг. Никогда не понимал аргументов про "есть из коробки". По-моему в 2013 году всем похуй на это.

elenangel

да, но при чём тут ява?

luna89

да, но при чём тут ява?
В яве есть встроенный интерпретатор яваскрипта, можно не заставлять ява разработчиков ставить node.js, чтобы сбилдить сайт.

Dimon89

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

Dasar

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

Dimon89

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

6yrop

Я же как предлагаю не "yum install nginx" написать, а изучить технологию. Научиться конфигурить апстримы, поизучать как они будут работать в случае таймаутов, поиграться с кешированием и гзипованием.
Даже такие мелочи как настройка php-fpm и долбление в 100 потоков с соседних машин — интереснейшая и очень поучительная игра.
Игрушки это хорошо, но без опыта применения в реальных проектах ценность "игрового" опыта не очень велика. Поэтому я бы рекомендовал "играться" по мере возникновения реальной необходимости.
По поводу nginx. Ты много сделал проектов, грубо говоря, с хотя бы 10 http запросов в секунду? Если, да, приведи ссылки.
Это я к тому, что сначала надо довести проект до таких нагрузок, а потом заниматься оптимизацией. При правильно кодировании это можно отложить до возникновении реальных проблем. А не решать не существующей проблемы.

kedr1983

По поводу nginx. Ты много сделал проектов, грубо говоря, с хотя бы 10 http запросов в секунду?
Это единственное, в чем ты видишь целесообразность использования nginx?

6yrop

Это единственное, в чем ты видишь целесообразность использования nginx?
В чем в этом? Основное, да, это решение проблем производительности сервера.
Довести проект до той стадии, когда проблемы производительности сервера станут, действительно, существенными это еще надо очень и очень постараться.

yroslavasako

nginx ещё решает проблемы с безопасностью и досом. Питоновские сервера вообще как-то стрёмно без nginx в сеть выпускать. Всё равно, что виндосервер без файервола оставить.

kedr1983

Плюсуюсь к вышесказанному. Я вообще при своих проектах нагрузок не испытываю (за исключением пары случаев во время старта и наполнение базы с нескольких источников они слишком мелкие и внутрикорпоративные. Однако лет 5-6 использую nginx в качестве штатного средства, забыв про апач (и вспоминаю о последнем с ужасом).
А справляемость с высокой нагрузкой — это бонус, а не крайность при которой настало вермя переходить на nginx.

pilot

В идеале он должен в любой момент выполнить любую работу за любого сотрудника тех. департамента.
:facepalm:

luna89

Тулзы для сборки яваскрипта написаны на яваскрипте, для их запуска нужен интерпретатор на машине разработчика и билд сервере. Rails, например, сейчас требует node.js.
Rhino удобен тем, что есть в JDK из коробки.

Кто минусует, объясните что вы считаете неверным?

luna89

Плюсуюсь к вышесказанному. Я вообще при своих проектах нагрузок не испытываю (за исключением пары случаев во время старта и наполнение базы с нескольких источников они слишком мелкие и внутрикорпоративные. Однако лет 5-6 использую nginx в качестве штатного средства, забыв про апач (и вспоминаю о последнем с ужасом).
А что не так с апачем?

yroslavasako

xml?

kedr1983

Вообще или в моем случае?
Вообще ничего против него не имею. В моем случае он избыточен и требует много 'секса' для элементарных вещей.
Оставить комментарий
Имя или ник:
Комментарий: