Беспорядочное изучение языков
странный вопрос задаешь. вроде как не первый год прогаешь.
Если бы плотников нанимали так же, как программистов
У меня все равно длиннее
Учи хаскель
языко-независимые вещи. скажем ооп.Зачем ООП? Это чо вообще? Сферический конь в вакууме?
Учить надо конкретные технологии, вникать в их суть, погружаться во внутреннее устройство, находить положительные и отрицательные стороны. Хороший практик — это не знание синтаксиса, а знание сути технологий, методов применения и, самое главное, спектра решаемых технологией задач.
И прежде всего стоит изучать не модные технологии, а хорошо работающие, пусть и не известные. Хорошо работающие желательно выбирать не по дизайну материалов с презентациями, а по конкретным метрикам — производительность, удобство внедрения, лёгкость кастомизации.
Ничего нет зазорного, чтобы изучать даже Джумлу и Друпал, хотя это «АДъ и Израиль», но не надо становиться адептом секты после первой инсталляции и закрывать для себя другой мир.
Также стоит расширить свой кругозор и уйти от языков. Изучи, например, nginx — научись настраивать, делать всякие связочки с ПХП или Питоном. Засетапь разные вики-движки, поизучай как и что там делается. И всегда, всегда веди дневничок, описывай что тебе показалось хорошим, а что — не удачным решением.
Но можно пойти другим путём. Выучить Си-шарп с джавой, выбрать одно по вкусу и стать красноглазым фанатиком, тогда тебя будут хорошо принимать на позиции соответствующей макаки, ведь ты будешь круто знать синтаксический сахар любимого языка!
Но можно пойти другим путём. Выучить Си-шарп с джавой, выбрать одно по вкусу и стать красноглазым фанатиком, тогда тебя будут хорошо принимать на позиции соответствующей макаки, ведь ты будешь круто знать синтаксический сахар любимого языка!на должность макаки, да, есть и такое, но есть шанс заняться нормальной разработкой.
Также стоит расширить свой кругозор и уйти от языков. Изучи, например, nginx — научись настраивать, делать всякие связочки с ПХП или Питоном. Засетапь разные вики-движки, поизучай как и что там делается. И всегда, всегда веди дневничок, описывай что тебе показалось хорошим, а что — не удачным решением.
это что за должность? Вроде не разработчик. Профессиональный сетапер что ли? Это такой специфичный админ что ли?
Если продолжить мысль, то по большому счету настройка и написание кода переходят одно в другое, четкой границы нет. 1. Осваивая языки общего назначения, ты понимаешь базовые принципы. 2. Ковыряясь в сетапах конкретных продуктов, ты приобретаешь практические навыки работы с конкретным продуктом. Первое должно определять общее направление, а второе осваиваешь по мере продвижения в выбранном направлении.
Хороший практик — это не знание синтаксиса, а знание сути технологий, методов применения и, самое главное, спектра решаемых технологией задач.судя по предыдущим тредам, ты не особо в курсе про спектр решаемых задач, скажем, на основе РСУБД
это что за должность? Вроде не разработчик. Профессиональный сетапер что ли? Это такой специфичный админ что ли?CTO и главный архитектор. Надо всё уметь, всё знать.
Разумеется, таких крутых чуваков очень мало. Которые реально много знают и всё могут сделать сами. Разумеется — это профи самого высокого уровня.
ты не особо в курсе про спектр решаемых задач, скажем, на основе РСУБДДа, это моё слабое звено, такие задачи как бухгалтерию для Ашана я не знаю как написать круто, готового решения в голове нет. Но если надо — за года два напишу, не в одиночку, разумеется.
CTOвот это ключевые скилы СТО? "Изучи, например, nginx — научись настраивать, делать всякие связочки с ПХП или Питоном. Засетапь разные вики-движки, поизучай как и что там делается."
главный архитектор
это не они Architecture Astronauts?
напишу, не в одиночку, разумеетсячто ты будешь делать эти два года?
Программист, не умеющий писать на хотя бы 8 разных языках, - говно. Не умеющий читать код на произвольных языках (кроме совсем хардкора вроде J и Piet) - тем более.
Программист, не умеющий писать на хотя бы 8 разных языках, - говно.Я что-то даже не вспомнил сходу столько популярных языков. Навскидку (по алфавиту): C++, C#, Delphi, Haskell, Java, Javascript, Perl, Python, PHP, Ruby... что ещё? Всякие XSLT/HTML/SQL считать? Или ты русский/английски посчитал для грамотного написания комментариев?
Но фреймворки языков 4-х знать необходимо, да
1 из императивных (плюсы, шарп, мой любимый обжектив)
1 из функциональных
1 из скриптовых
какую-нибудь веб-чешую и БДшки...)
А вообще по себе чувствую, что успевать это практически нереально, надо становиться ПМом, который половину своего времени может занять ботвой новых технологий, зато ему некогда кодить. И наоборот..
Хотя это может я просто ленивое хуйло)
зато ему некогда кодитьнапомнило http://www.youtube.com/watch?v=zqETgaYxlt0&t=30m0s
Я что-то даже не вспомнил сходу столько популярных языков.навскидку, например, так:
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
и, конечно, еще остается всякая экзотика - типа форт, функциональщина, пролог и т.д.
1)бд - sqlНу я бы слил пункты 3-4 и 7-й убрал нафиг ибо есть 8-й, а в целом - да, всё правильно, минимальный джентельменский набор.
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
Программист, не умеющий писать на хотя бы 8 разных языках, - говно. Не умеющий читать код на произвольных языках (кроме совсем хардкора вроде J и Piet) - тем более.Интересуюсь, а Prolog — это хардкор или нет?
Ну я бы слил пункты 3-43-ий пункт больше про разметку rich-текста. Всякие rtf/ooxml/tex/pdf/wiki-markup/ubb сюда же.
7-й убрал нафиг ибо есть 8-й7-ой никуда не денется, потому что если уж сам их не пишешь, то их пишут другие - а значит необходимо уметь их читать и вносить исправления.
вот это ключевые скилы СТО?Да, грамотный CTO должен в деталях разбираться в том, как работают те или иные технологии. В идеале он должен в любой момент выполнить любую работу за любого сотрудника тех. департамента. Это нужно и для того, чтобы определять технологии в компании, и для того, чтобы понимать сферы компетенции коллег, и для того, чтобы в три часа ночи разобраться с аварийной ситуацией.
Разумеется, речь не идёт о «свадебных генералах», суть работы которых сводится к созданию презентаций, болтовне и прочей ИБД.
И да, CTO — много, хороших CTO — мало.
В идеале он должен в любой момент выполнить любую работу за любого сотрудника тех. департамента.из этого следует, что остальные сотрудники какие-то херовые, если их всех можно заменить одним человеком.
Не прогал на фортране - не программист!
чтобы определять технологии в компании, и для того, чтобы понимать сферы компетенции коллег,ты предлагаешь сетаперу определить технологии для девелопмента и сетапер же определяет компетенцию девелоперов, я видел что-то подобное, печальное зрелище. Если человек не разрабатывает сам, херовый из него и выбиральщик технологий, и хороших девелоперов он не подберет.
Я же как предлагаю не "yum install nginx" написать, а изучить технологию. Научиться конфигурить апстримы, поизучать как они будут работать в случае таймаутов, поиграться с кешированием и гзипованием.
Даже такие мелочи как настройка php-fpm и долбление в 100 потоков с соседних машин — интереснейшая и очень поучительная игра.
В любом случае это полезнее, чем читать про сферическое ООП в вакууме.
чем читать про сферическое ООП в вакуумес этим согласен
C# + ASP, плюс также иногда читаю про HTML, CSS и javascript.По количеству технологий, это обычный стек с которым знаком любой веб-кодер, мне кажется ничего неподъемного тут нет.
C#+ASP, либо ещё JAVA изучитьЭто все замшелое легаси, не советую.
легасиа что сейчас актуально?
всякая экзотика - типа форт, функциональщина, пролог и т.д.
Программист, не умеющий писать на хотя бы 8 разных языках, - говно. Не умеющий читать код на произвольных языках (кроме совсем хардкора вроде J и Piet) - тем более.Unlambda в какую категорию попадает?
а что сейчас актуально?
Ну, ASP.NET вроде официально в микрософте считается устаревшим.
Что касается явы, то я, например, как фронтенд программист вижу, что у сайтов на яве не бывает хороших современных фронтендов. Например, тулзы для сборки клиентского js обычно не запускаются в rhino.js. Если бы кого-то интересовала ява как платформа для веба, то это уже давно починили бы.
Ну, ASP.NET вроде официально в микрософте считается устаревшим.asp.net пока никто не отменял.
появлялись лишь надстройки над ним. Сначала появился asp.net mvc, затем asp.net web pages (razor)
http://www.asp.net/get-started
Ну, ASP.NET вроде официально в микрософте считается устаревшим.алё, это единственно, что остается мейнстримом на .NET. Всё остальное либо устарело, либо не взлетело http://www.infoq.com/articles/Win8-LOB-Options
Не умеющий читать код на произвольных языкахя видел программистов, которые умеют писать код на perl, а вот тех, кто его умеет читать как-то гораздо меньше
а чё так?
ява
клиентского js
rhino.js
Тулзы для сборки яваскрипта написаны на яваскрипте, для их запуска нужен интерпретатор на машине разработчика и билд сервере. Rails, например, сейчас требует node.js.
Rhino удобен тем, что есть в JDK из коробки.
Rhino удобен тем, что есть в JDK из коробки.Видимо ява окончательно пожрала мой мозг. Никогда не понимал аргументов про "есть из коробки". По-моему в 2013 году всем похуй на это.
да, но при чём тут ява?
да, но при чём тут ява?В яве есть встроенный интерпретатор яваскрипта, можно не заставлять ява разработчиков ставить node.js, чтобы сбилдить сайт.
7-ой никуда не денется, потому что если уж сам их не пишешь, то их пишут другие - а значит необходимо уметь их читать и вносить исправления.Я думал, ты перечисляешь языки, на которых надо уметь свободно писать. Читать и вносить исправления можно хоть в брейнфак, если
Читать и вносить исправления можно хоть в брейнфак, если желание задача есть.Писать на Фортране можно на любом языке. (c)
я к тому, что необходимо не просто уметь вносить исправления в код, но и делать это в соответствии с культурой данного языка.
я к тому, что необходимо не просто уметь вносить исправления в код, но и делать это в соответствии с культурой данного языка.С этим трудно поспорить)
Я же как предлагаю не "yum install nginx" написать, а изучить технологию. Научиться конфигурить апстримы, поизучать как они будут работать в случае таймаутов, поиграться с кешированием и гзипованием.Игрушки это хорошо, но без опыта применения в реальных проектах ценность "игрового" опыта не очень велика. Поэтому я бы рекомендовал "играться" по мере возникновения реальной необходимости.
Даже такие мелочи как настройка php-fpm и долбление в 100 потоков с соседних машин — интереснейшая и очень поучительная игра.
По поводу nginx. Ты много сделал проектов, грубо говоря, с хотя бы 10 http запросов в секунду? Если, да, приведи ссылки.
Это я к тому, что сначала надо довести проект до таких нагрузок, а потом заниматься оптимизацией. При правильно кодировании это можно отложить до возникновении реальных проблем. А не решать не существующей проблемы.
По поводу nginx. Ты много сделал проектов, грубо говоря, с хотя бы 10 http запросов в секунду?Это единственное, в чем ты видишь целесообразность использования nginx?
Это единственное, в чем ты видишь целесообразность использования nginx?В чем в этом? Основное, да, это решение проблем производительности сервера.
Довести проект до той стадии, когда проблемы производительности сервера станут, действительно, существенными это еще надо очень и очень постараться.
nginx ещё решает проблемы с безопасностью и досом. Питоновские сервера вообще как-то стрёмно без nginx в сеть выпускать. Всё равно, что виндосервер без файервола оставить.
А справляемость с высокой нагрузкой — это бонус, а не крайность при которой настало вермя переходить на nginx.
В идеале он должен в любой момент выполнить любую работу за любого сотрудника тех. департамента.
Тулзы для сборки яваскрипта написаны на яваскрипте, для их запуска нужен интерпретатор на машине разработчика и билд сервере. Rails, например, сейчас требует node.js.
Rhino удобен тем, что есть в JDK из коробки.
Кто минусует, объясните что вы считаете неверным?
Плюсуюсь к вышесказанному. Я вообще при своих проектах нагрузок не испытываю (за исключением пары случаев во время старта и наполнение базы с нескольких источников они слишком мелкие и внутрикорпоративные. Однако лет 5-6 использую nginx в качестве штатного средства, забыв про апач (и вспоминаю о последнем с ужасом).А что не так с апачем?
xml?
Вообще ничего против него не имею. В моем случае он избыточен и требует много 'секса' для элементарных вещей.
Оставить комментарий
vovhik_0
Сложилась такая ситуация: прогал на C++ где-то четыре года, сейчас по работе изучаю и пишу на C# + ASP, плюс также иногда читаю про HTML, CSS и javascript.В последнее время возникает ощущение, что, если продолжу в таком духе, то либо стану классным, либо "за двумя зайцами погонишься, ни одного не поймаешь".
Вот теперь думаю: либо остановиться, и качаться в сторону C++ или C#+ASP, либо ещё JAVA изучить